Edit this page form and left when prompted to do (jQuery)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | $.fn.enable_changed_form_confirm = function () { var _f = this; $(':text, :password, textarea', this).each(function() { $(this).attr('_value', $(this).val()); }); $(':checkbox, :radio', this).each(function() { var _v = this.checked ? 'on' : 'off'; $(this).attr('_value', _v); }); $('select', this).each(function() { $(this).attr('_value', this.options[this.selectedIndex].value); }); $(this).submit(function() { window.onbeforeunload = null; }); window.onbeforeunload = function(_f) { if(is_form_changed(_f)) { return "You will lose any unsaved content."; } } } function is_form_changed(f) { var changed = false; $(':text, :password, textarea', f).each(function() { var _v = $(this).attr('_value'); if(typeof(_v) == 'undefined') _v = ''; if(_v != $(this).val()) changed = true; }); $(':checkbox, :radio', f).each(function() { var _v = this.checked ? 'on' : 'off'; if(_v != $(this).attr('_value')) changed = true; }); $('select', f).each(function() { var _v = $(this).attr('_value'); if(typeof(_v) == 'undefined') _v = ''; if(_v != this.options[this.selectedIndex].value) changed = true; }); return changed; } $(function() { $('form').enable_changed_form_confirm(); }); |
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.


Comments
No comments yet.
Leave a comment