2012-03-21 10 views
7

Pracuję z jquery.Zdarzenie wejściowe zmiany wejścia nie jest uruchamiane na jquery

Mam wpisanie tekstu w formularzu, chcę przetworzyć zdarzenie zmiany.

$("#my_input").change(function(){alert('123');}); 

zdarzenie jest opalane normalnie kiedy ręcznie edytować pola, ale kiedy zmienić wartość pola ze skryptu (czasami ze skryptu zewnętrznego) nie działa.

Czy istnieje jakieś rozwiązanie?

i dzięki z góry.

Odpowiedz

11

Zdarzenie zmiany nie jest zaprojektowane do wykrywania zmian programowych. Można wywołać zdarzenie ręcznie przy ustalaniu wartości, choć:

$('#my_input').trigger('change'); 

skrót:

$('#my_input').change(); 
+1

tam jest zdarzenie, które pożary, gdy wejście jest zmieniana programowo? – Youcef04

+0

@ Youcef04: Nie, JavaScript nie obsługuje tego rodzaju monitorowania. Niektóre inne języki mają konstrukcje, które pozwalają na takie rzeczy, ale nie w JavaScript. – jwueller

+0

wielkie dzięki, więc nie trzeba szukać gdzie indziej. – Youcef04

0

Ogień je ręcznie, za pomocą jednej z dwóch następujących funkcji:

$('#my_input').trigger('change'); 
$('#my_input').change(); 
0

Można użyj transmisji na żywo/przekazania do wiązania zdarzenia zmiany

$("#my_input").live('change',function(){alert('123');}); 
0

oto kod

$("input[type='text']").change(function() { 
    // check input ($(this).val()) for validity here 
}); 
Powiązane problemy