不要询问用户是否提交表格

我正在使用以下JavaScript代码来警告用户,如果他尝试重定向到另一个页面而不提交表单。

window.onbeforeunload = function() { return 'Are you sure that you want to leave this page?'; }; 

这工作正常。但我的问题是当用户尝试使用提交按钮确认框提交表单时将出现。 我不想询问用户是否提交表格,否则我想要确认。 这怎么可能?

保持状态变量。 当用户点击提交按钮设置状态为userSubmitted=True ;
状态变量可以包括全局变量或隐藏控件。

 var userSubmitted=false; $('form').submit(function() { userSubmitted = true; }); 

那么检查一下

 window.onbeforeunload = function() { if(!userSubmitted) return 'Are you sure that you want to leave this page?'; }; 

PS:交叉检查onbeforunload兼容性的跨浏览器。

简单。

只要有一个全局变量

 var can_leave = false; 

在您的表格上:

 $('form').submit(function() { ... ... can_leave = true; }); 

在你的onbeforeunload()处理程序里面有这样的:

 window.onbeforeunload = function() { if (!can_leave) return 'Are you sure that you want to leave this page?'; };