Jakie zdarzenia wywołuje <input type = „number” /> po zmianie jego wartości?


Odpowiedzi:


74

change byłoby zdarzeniem uruchamianym w przypadku zmiany wartości pola.

Myślę, że zdarzenie HTML5 inputrównież by się uruchomiło.


37
oninputjest uruchamiany tylko po kliknięciu strzałek „w górę” i „w dół”.
N 1.1

2
ale zmiana powoduje tylko rozmycie, przynajmniej w przeglądarce Firefox. Myślę, że będziemy musieli poszukać naciśnięcia klawisza.
andho

onchange i oninput działały w Operze, ale tylko oninput działałoby w Chrome (i tylko wtedy, gdy zwróciłem false z modułu obsługi zdarzeń - w przeciwnym razie Chrome wielokrotnie uruchomiłby zdarzenie oninput)
Ian Oxley

2
changenie uruchamia się po wpisaniu wartości, tylko po kliknięciu przycisków (przynajmniej w przeglądarce Firefox).
Timmmm

5
inputjest jak połączeniekeyup change
Thanh Trung

37

Zauważyłem, że w przypadku jQuery następujący kod obejmował wprowadzanie z klawiatury, zmiany kółka myszy i kliknięcia przycisków w przeglądarce Chrome, a także obsługiwał wprowadzanie z klawiatury w przeglądarce Firefox

$("input[type=number]").bind('keyup input', function(){
    // handle event
});

2
Dodaj do tego „zmianę” i jest idealnie. Nadal będziesz chciał nasłuchiwać zewnętrznych zmian, a i tak nie ma nic złego w dodaniu.
Matt Fletcher,

A także „kółko myszy”, jeśli chcesz wychwycić zdarzenia przewijania w polu wprowadzania.
Matt Fletcher,

4
Zauważ, że .bind()jest to teraz przestarzałe na korzyść.on()
Michael Hays

7

Znalazłem to onkeyupi onchangeomówiłem wszystko w Chrome 19. Obsługuje to bezpośrednie wprowadzanie wartości, naciśnięcie klawisza strzałki w górę w dół, klikanie przycisków i przewijanie kółka myszy.

onchangeSamo byłoby wystarczające w Chrome, ale inne przeglądarki, które renderują pole tylko jako pole tekstowe, potrzebują onkeyuppowiązania, które działa doskonale, aby odczytać nową wartość.

Wiązanie mousewheelwydarzenia osobno było mniej skuteczne. Zdarzenie zostało uruchomione zbyt wcześnie - przed zaktualizowaniem wartości pola - i dlatego zawsze podawało poprzednią wartość pola


Dotyczy to również przeglądarki Firefox.
barfuin

5

W onchangeZdarzenie na rozmycie ale oninputZdarzenie podczas pisania. Może chcesz ustawić licznik czasu w oninputzdarzeniu i uruchomić je onchange, gdy użytkownik przestał pisać na sekundę?


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.