Edit this page form and left when prompted to do (jQuery)
$.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