2009-11-24 11 views
10

¿Existe alguna forma lista (tal vez en uno de los marcos) para detectar si un formulario tiene cambiado en comparación con sus valores originales?¿Detecta cambio de forma real?

El evento onchange no funcionará, porque se dispara independientemente del cambio real (podría, por ejemplo, marcar una casilla de verificación, y desactivarla nuevamente, con dos eventos de cambio).

El último recurso sería almacenar el valor original de cada elemento en un campo oculto, y pasar por cada uno. Si hay un método más rápido, ¡me encantaría escucharlo!

+2

Ver http://stackoverflow.com/questions/598951/ qué-es-la-manera más fácil de detectar si al menos un campo ha sido cambiado en un ht/598977 # 598977 –

+0

Saludos, serialización era la nueva idea que estaba buscando para. –

Respuesta

11

No conozco ningún evento DOM que detecte cambios realizados en los atributos de valor de los elementos hijos/descendientes, pero debería ser suficiente para comparar los valores serialized antes/después, $('form').serialize(). Me disculpo si ya conocía este método específicamente, supongo que está revisando manualmente los elementos del formulario y agregando valores a una cadena.

+0

No, no sabía/pensaba en serializar. Es una gran idea, gracias! –

+0

Es una gran solución. Lástima que no funciona para formularios complejos con div's y fieldset-definitions .. – Tapper

Cuestiones relacionadas