我正在创建一个ASP.NET网站,我想实现逻辑,以便在用户离开他们编辑过的页面时发出警告。
我在网上发现了很多信息,虽然大部分内容似乎已经过时了。请注意,我仍然需要了解很多jQuery。
以下代码按预期显示消息。
window.onbeforeunload = function () {
return 'You have unsaved changes!';
}
但是,以下代码 - 仅在进行更改时应该等于上面的代码 - 不起作用。没有任何警告显示。
$('input').change(function () {
window.onbeforeunload = function () { return "Your changes have not been saved?" };
});
有人可以说为什么第二个片段不起作用?或者你可以指点我最近的参考文献。
答案 0 :(得分:6)
执行代码时,您的输入元素可能不存在。尝试使用.live
函数检测所有输入元素的更改,或将代码包装在$(document).ready()
处理程序中。
示例:
$('input').live("change", function () {
window.onbeforeunload = function () { return "Your changes have not been saved?" };
});
或
$(document).ready(function () {
$('input').change(function () {
window.onbeforeunload = function () { return "Your changes have not been saved?" };
});
});