2012-03-21 13 views
7

Sto lavorando con jquery.L'evento di input OnChange non viene attivato su jquery

E ho un input di testo in un modulo, vorrei elaborare l'evento di modifica.

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

l'evento viene generato normalmente quando ho modificare il campo manualmente, ma quando cambio il valore del campo con uno script (a volte con uno script esterno) non funziona.

c'è qualche soluzione?

e grazie in anticipo.

risposta

11

L'evento di modifica non è progettato per rilevare le modifiche programmatiche. È possibile attivare l'evento manualmente quando si imposta il valore, però:

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

scorciatoia:

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

c'è un evento che viene generato quando si cambia l'ingresso di programmazione? – Youcef04

+0

@ Youcef04: No, JavaScript non supporta questo tipo di monitoraggio. Alcuni altri linguaggi hanno costrutti che permettono cose come questa, ma non in JavaScript. – jwueller

+0

grazie mille, quindi non c'è bisogno di cercare altrove. – Youcef04

0

fuoco manualmente, utilizzando uno dei seguenti due funzioni:

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

Puoi utilizzare live/delegare per associare l'evento di modifica

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

Ecco il codice

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