我创建了以下jsfiddle。
如果在任何编辑框中输入任何输入并尝试离开页面,则会显示警告,这是可以的。
如果输入任何输入并单击按钮,则在不符合要求时仍会显示警告。 (我需要阻止它显示)。
在网页中,似乎window.onbeforeunload
的抛出早于on click事件,因此即使您单击“提交”按钮,它也将始终显示警告对话框。
这让我认为应该更改代码以处理事件的时间,但不确定吗?
听起来您想要做的是防止在提交表单时显示onbeforeunload
消息。
仅添加将submit
值返回为false的form_has_been_modified
处理程序。
$("#additemform").on('submit', function(e) {
form_has_been_modified = false;
});
在此演示中,我还清理了您的示例,删除了不必要的处理程序,并更改了form_has_been_modified
以使用本地布尔值true
和false
而不是0和1。