如果用户尝试在不提交表单的情况下重定向到另一个页面,我正在使用以下 JavaScript 代码警告用户。
window.onbeforeunload = function() {
return 'Are you sure that you want to leave this page?';
};
这工作正常。但我的问题是当用户尝试使用提交按钮提交表单时,会出现确认框。如果用户提交表单,我不想询问确认,否则我想询问确认。这怎么可能?
如果用户尝试在不提交表单的情况下重定向到另一个页面,我正在使用以下 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?';
};