我使用下面的JavaScript代码,如果他试图重定向到另一个页面,而不提交表单,以警告用户。
window.onbeforeunload = function() {
return 'Are you sure that you want to leave this page?';
};
这是工作fine.But我的问题是,当用户尝试使用提交按钮确认框会出现提交表单。 我不想问,如果确认用户提交表单,否则我想问确认。 这怎么可能?
我使用下面的JavaScript代码,如果他试图重定向到另一个页面,而不提交表单,以警告用户。
window.onbeforeunload = function() {
return 'Are you sure that you want to leave this page?';
};
这是工作fine.But我的问题是,当用户尝试使用提交按钮确认框会出现提交表单。 我不想问,如果确认用户提交表单,否则我想问确认。 这怎么可能?
保持的状态变量。 当用户点击提交按钮设置状态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?';
};