2009-11-24 9 views
10

Esiste un modo pronto (forse in uno dei framework) per rilevare se un modulo ha modificato rispetto ai valori originali?Rileva cambiamento modulo effettivo?

L'evento onchange non lo farà, perché si attiva indipendentemente dal cambiamento effettivo (potrei ad esempio spuntare una casella di controllo, e disattivare di nuovo, con due eventi di scambio).

L'ultima risorsa sarebbe quella di memorizzare il valore originale di ciascun elemento in un campo nascosto e passare attraverso ciascuno di essi. Se c'è un metodo più veloce, sarei felice di sentirlo!

+2

Vedi http://stackoverflow.com/questions/598951/ what-is-the-eas-way-to-detect-if-at-least-one-field-has-been-changed-on-an-ht/598977 # 598977 –

+0

Cheers, serializzare era la nuova idea che stavo cercando per. –

risposta

11

Non sono a conoscenza di alcun evento DOM che rileva le modifiche apportate agli attributi del valore di elementi figli/discendenti, ma dovrebbe essere sufficiente per confrontare i valori serialized prima/dopo, $('form').serialize(). Mi scuso se hai già saputo specificamente questo metodo, suppongo che tu stia procedendo manualmente attraverso gli elementi del modulo e aggiungendo valori a una stringa.

+0

No, non sapevo/pensavo di serializzare. È una grande idea, grazie! –

+0

È un'ottima soluzione. Peccato che non funzioni per forme complesse con definizioni div e fieldset .. – Tapper