不要询问用户是否提交表格
我正在使用以下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?'; };