Jquery 離開頁面時提示儲存

wl1121發表於2009-05-14
$.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() {    
        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();    
});  

 

相關文章