jquery.dirty
A jQuery plugin to determine when a form has been modified (dirtied) and act accordingly
All state information about the form is held in the data object for the form rather than adding data- attributes to the DOM
Gitter
https://gitter.im/jquerydirty/Lobby
Usage
$("#myForm").dirty();
Options
- preventLeaving- boolean indicating whether on not to show a warning if the user attempts to navigate away from the form with pending changes- Default: false
 
- leavingMessage- message to display when preventLeaving is true- Default: 'There are unsaved changes on this page which will be discarded if you continue.'
 
- onDirty- function called when form is modified
- onClean- function called when form is restored to original state
Methods
$("#myForm").dirty("isDirty"); returns true if a form has been modified
$("#myForm").dirty("isClean"); returns true if a form has not been modified
$("#myForm").dirty("refreshEvents"); remove and reapply events. Can be used if content is dynamically added to form
$("#myForm").dirty("resetForm"); reset the form to the original state when $("#myForm").dirty(); was called
$("#myForm").dirty("setAsClean"); set the current state of the form as the 'clean' state. Calling resetForm after this will restore the form to the state when setAsCleanwas called
$("#myForm").dirty("setAsDirty"); set the current state of the form as the 'dirty' state
$("#myForm").dirty("showDirtyFields"); returns jQuery array of all modified fields in the form
Credits
Thanks to Tomasz Świenty for feedback and a fix for an issue where a value could resolve as null
 simon-reynolds
simon-reynolds