Edit this page form and left when prompted to do (jQuery)

?View Code JAVASCRIPT
$.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

(required)

(required)