Przejrzałem wiele innych pytań i znalazłem bardzo proste odpowiedzi, w tym poniższy kod. Chcę po prostu wykryć, gdy ktoś zmieni zawartość pola tekstowego, ale z jakiegoś powodu nie działa ... Nie dostaję błędów konsoli. Kiedy ustawiam punkt przerwania w przeglądarce na change()
funkcję, nigdy go nie trafia.
$('#inputDatabaseName').change(function () {
alert('test');
});
<input id="inputDatabaseName">
Odpowiedzi:
Możesz użyć
input
zdarzenia JavaScript w jQuery w następujący sposób:W czystym JavaScript:
Lub tak:
źródło
spróbuj klucza zamiast zmiany.
Oto oficjalna dokumentacja jQuery dla .keyup () .
źródło
W każdej odpowiedzi brakuje niektórych punktów, więc oto moje rozwiązanie:
Te
Input Event
pożary na klawiaturze wejścia, Mysz Drag , Autofill i kopiuj-wklej testowany na Chrome i Firefox. Sprawdzanie poprzedniej wartości powoduje, że wykrywa ona rzeczywiste zmiany, co oznacza brak strzelania podczas wklejania tej samej rzeczy lub pisania tego samego znaku itp.Przykład roboczy: http://jsfiddle.net/g6pcp/473/
aktualizacja:
A jeśli chcesz uruchamiać swój komputer
change function
tylko wtedy, gdy użytkownik skończy pisać i nie uruchomi kilkakrotnie akcji zmiany, możesz spróbować:Jeśli użytkownik zacznie pisać (np. „Foobar”), ten kod uniemożliwia
change action
uruchamianie każdego rodzaju liter użytkownika i działa tylko wtedy, gdy użytkownik przestaje pisać, jest to szczególnie przydatne, gdy wysyłasz dane wejściowe do serwera (np. Dane wejściowe wyszukiwania), które serwer sposób robi tylko jeden poszukiwaniafoobar
, a nie sześć wyszukujef
i wtedyfo
i wtedyfoo
, afoob
i tak dalej.źródło
$("#input").focusout(function () {})
. Gdy klikniesz poza wejściem, zdarzenie jest uruchamiane. Działa na bieżącej wersji Chrome i Firefox oraz IE9$("#input").on("input focusout",function(e){
Wprowadzanie tekstu nie uruchamia
change
zdarzenia, dopóki nie straci ostrości. Kliknij poza wejściem, a pojawi się alert.Jeśli oddzwanianie powinno zostać uruchomione, zanim wprowadzanie tekstu przestanie być aktywne, użyj
.keyup()
zdarzenia.źródło
change
pracuje tutaj: jsfiddle.net/g6pcp ;keyup
zaalarmuj po każdym klawiszu, co nie jest dobrym sposobemalert()
. Ułatwi toonkeyup, onpaste, onchange, oninput
wydaje się nie działać, gdy przeglądarka wykonuje automatyczne wypełnianie pól tekstowych. Aby poradzić sobie z takim przypadkiem,autocomplete='off'
w polu tekstowym wpisz „ ”, aby uniemożliwić przeglądarce automatyczne wypełnianie pola tekstowego,Na przykład,
źródło
W moim przypadku miałem pole tekstowe dołączone do narzędzia do wyboru daty. Jedynym rozwiązaniem, które działało dla mnie, było obsłużenie go w zdarzeniu onSelect datepicker.
źródło
Myślę, że możesz
keydown
też użyć :źródło
PRACUJĄCY:
źródło