我创建了以下jsfiddle。
如果您在任何编辑框中输入任何输入并尝试离开页面,则会显示警告,这是正常的。
如果输入任何输入并单击按钮,则在不需要时仍会显示警告。 (我需要阻止它显示)。
在网页中,window.onbeforeunload
似乎比点击事件更早被抛出,因此即使您点击提交按钮,它也会始终显示警告对话框。
这让我觉得代码应该改变以处理事件的时间但不确定?
答案 0 :(得分:1)
听起来您想要做的是阻止在提交表单时显示onbeforeunload
消息。
只需添加一个submit
处理程序,将form_has_been_modified
值返回false。
$("#additemform").on('submit', function(e) {
form_has_been_modified = false;
});
<强> Working Demo 强>
在本演示中,我还清理了您的示例,删除了不必要的处理程序并更改了form_has_been_modified
以使用原生布尔true
和false
而不是0和1。