用户尝试离开页面而不保存时发出JavaScript警报

时间:2018-03-30 16:05:37

标签: javascript

关注问题和答案 Create confirm JavaScript for when users try to leave page without saving 来自MarkR的解决方案

<script language="JavaScript">
    window.onbeforeunload = confirmExit;
    function confirmExit() {
        return "Please click Update. Unsaved changes will be lost.";
    }
</script>

工作正常 - 除非它要求我确认即使我点击“提交”按钮。我理解为什么。我的问题是,如果使用“提交”按钮,如何跳过代码的执行? 感谢。

2 个答案:

答案 0 :(得分:1)

当用户提交表单时删除beforeunload处理程序。

document.getElementById("formid").addEventListener("submit", function() {
    window.onbeforeunload = null;
});

答案 1 :(得分:0)

如果用户按下“提交”,我建议将其余值submitted设置为true,但当用户更改页面上的任何输入时,我会建议重置为false 。这实际上取决于您正在开发的应用程序类型。

我假设你有inputtype字段,我会做

$('input').change(function(e) {
    window.submitted = false;
})

然后检查window.submitted功能中的confirmExit值。