javascript - 如果用户尝试离开网页,如何提示用户未保存的更改

标签 javascript jquery forms events

<分区>

Possible Duplicate:
How do I stop a page from unloading (navigating away) in JS?
Prompt user for unsaved changes when leaving webpage

我有一个 php 表单,它是我在 Dreamweaver 中设计的,只包含文本字段,它一次从我的数据库中检索一条记录。我在这个页面上还有一个“更新记录”按钮,单击该按钮会使用对表单中数据所做的任何更改更新数据库记录。我希望如果用户以某种方式编辑表单数据并试图在不单击“更新记录”按钮的情况下离开页面,系统会提示他们该页面包含未保存的更改,并要求他们验证是否要离开或不(如果可能的话,可能通过一些javasript)。

非常感谢任何帮助。

最佳答案

onbeforeunload在导航实际开始之前触发,您可以使用一种相当独特的方法停止导航:只需返回您希望在对话框中显示的字符串,浏览器就会询问用户是否真的想要离开页面。

如果您不返回字符串,浏览器将继续正常导航。例如,您可以使用此行为仅在用户有未保存的更改时显示提示。

window.onbeforeunload = function(e) {
    if (unsavedChanges) return 'Dialog text here.';
};

您只能通过返回一个字符串并让浏览器提示来停止导航。在 onbeforeunload 中实际上禁止调用 alertconfirm,并且在 onunload 中,您无法真正停止导航.

关于javascript - 如果用户尝试离开网页,如何提示用户未保存的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14366518/

相关文章:

javascript - 添加/删除/替换 html 元素的类

javascript - 滚动超过某个点确实

Javascript 获取每一张幻灯片的模数?

jquery - jquery 淡入背景

javascript正则表达式尾随零

javascript - 将两个数组合并到多个对象

javascript - 同一个函数的回调

php - 如何从未选中的复选框中获取值

javascript - 根据按下的按钮更改表单方法

javascript - IE和Google Chrome中的多表单提交