2012-05-25 7 views
18

¿Cómo puedo usar onChange o un evento similar para todos los elementos form? No quiero usar onChange para cada campo por separado.Forma completa onChange

+0

por qué no? En el evento HTML, puede llamar a la misma función cada vez, por lo que se trata de copiar y pegar, probablemente no más de 20 caracteres y escribir 1 función. – 11684

+1

¿[este] (http://stackoverflow.com/questions/10546076/common-event-for-all-elements-on-form) ayuda? –

Respuesta

27

Si está utilizando jQuery, puede usar el evento change en el elemento de formulario, porque en jQuery el evento se dispara.

$('#formId').change(function(){...}); 

Si está utilizando javascript normal, el evento de cambio no burbujea (al menos no cruza el navegador). Así que tendría que conectar el controlador de eventos a cada elemento de entrada por separado:

var inputs = document.getElementsByTagName("input"); 
for (i=0; i<inputs.length; i++){ 
    inputs[i].onchange = changeHandler; 
} 

(por supuesto, tendría que hacer una cosa similar a todas las áreas de texto) selecciona y

+0

Excelente respuesta. – Jake

+5

Ahora parece que todos los principales navegadores son compatibles con 'form onchange'. – Mori

+0

@Mori - ¿Puede explicar su comentario, por favor, qué soporte hay para la forma onchange ahora? –