离开页面时检测表单元素是否被修改,提示保存的js代码
复制代码 代码如下: window.onbeforeunload = function() { if(is_form_changed()) { return "您的修改内容还没有保存,您确定离开吗?"; } } function is_form_changed() { var t_save = jQuery("#t_save"); //检测页面是否要保存按钮 if(t_save.length>0) { //检测到保存按钮,继续检测元素是否修改 var is_changed = false; jQuery("#A4 input, #A4 textarea, #A4 select").each(function() { var _v = jQuery(this).attr('_value'); if(typeof(_v) == 'undefined') _v = ''; if(_v != jQuery(this).val()) is_changed = true; }); return is_changed; } return false; } jQuery(document).ready(function(){ jQuery("#A4 input, #A4 textarea, #A4 select").each(function() { jQuery(this).attr('_value', jQuery(this).val()); }); });
答案:onbeforeunload 事件丢失率在20%左右,也就是20%情况下离开页面时不会执行. IE的情况好点, 大约是8%, Chrome和Safari这个事件不执行完的概率极高. (以上统计数据是淘宝对数千万用户的统计)
上一个:关于js 用iframe做的在线编辑器如何保存输入焦点的问题
下一个:如何在JS中实现 同一位置的图片按时间来替换