【发布时间】:2010-10-26 16:33:09
【问题描述】:
我想创建一个onbeforeunload“你已经对页面进行了编辑。留在这个页面上,离开这个页面”jQuery 插件。
插件需要:
- 接受包含元素。
$(".editableFieldContainer").beforeUnload() - 自动检测对
not(:hidden)input/textarea/selects 的更改。 - 如果包含元素中的元素发生更改,则提示用户留在页面上。
- 除非页面是通过表单提交的。
- 除非页面/用户想要取消更改,例如按下“取消”链接/按钮。
类似这样的东西(但不完全是,它缺少一些功能):
(function(){
var changed = false;
$.beforeUnloadCanceled = false;
$.fn.beforeUnload = function(){
$.beforeUnloadCanceled = true;
return $(this).delegate("input,select,textarea", "change", function(){
changed = true;
});
});
window.onbeforeunload = function(){
if(changed && !beforeUnloadCanceled){return "You have made edits to the page.";}
};
}());
是否已经有一个不错的插件可以做到这一点?
【问题讨论】:
标签: javascript jquery jquery-plugins