2013-07-29 51 views
0

我创建了以下jsfiddlewindow.onbeforeunload不按预期方式工作

如果您在任何编辑框中输入任何输入,并尝试离开页面,则会显示警告信息。

如果您输入任何输入并单击该按钮,当不需要时仍会显示警告。 (我需要阻止它显示)。

在网页中,似乎window.onbeforeunload比单击事件之前被抛出,因此即使您单击提交按钮,它也将始终显示警告对话框。

它让我觉得代码应该改变,以处理事件的时间,但不知道?

+0

什么click事件你在说什么?在你的小提琴没有发生'window.onbeforeunload'事件? – putvande

回答

1

这听起来像你想要做的是防止在提交表单时显示onbeforeunload消息。

只需添加一个submit处理程序,该处理程序将form_has_been_modified值返回为false。

$("#additemform").on('submit', function(e) { 
    form_has_been_modified = false; 
}); 

Working Demo

在这个演示中,我还清理你的榜样,去除不必要的处理和改变form_has_been_modified使用本地布尔truefalse而不是0和1

+0

谢谢,我已经更新了这里的小提琴http://jsfiddle.net/5D9qh/17/你可以看到,在输入值并点击提交后,它仍然显示警告。 – Athanatos

+0

您正在使用哪种浏览器?我在提交表单时看不到消息;我正在使用Chrome 28. – cfs

+0

IE10和Mozilla 22.0,我已经在CHROME中测试过了,它按预期工作(我没有看到这个消息)。 – Athanatos