使用未保存的更改从页面导航时警告用户

时间:2011-07-26 03:59:59

标签: javascript jquery

我正在创建一个ASP.NET网站,我想实现逻辑,以便在用户离开他们编辑过的页面时发出警告。

我在网上发现了很多信息,虽然大部分内容似乎已经过时了。请注意,我仍然需要了解很多jQuery。

以下代码按预期显示消息。

window.onbeforeunload = function () {
    return 'You have unsaved changes!';
}

但是,以下代码 - 仅在进行更改时应该等于上面的代码 - 不起作用。没有任何警告显示。

$('input').change(function () {
    window.onbeforeunload = function () { return "Your changes have not been saved?" };
});

有人可以说为什么第二个片段不起作用?或者你可以指点我最近的参考文献。

1 个答案:

答案 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?" };
  });
});