我正在使用以下JavaScript代码警告用户,如果他尝试重定向到另一个页面而不提交表单。
window.onbeforeunload = function() {
return 'Are you sure that you want to leave this page?';
};
这工作正常。但我的问题是当用户尝试使用提交按钮确认框提交表单时将出现。 我不想询问用户是否提交表格,否则我想要确认。怎么可能?
答案 0 :(得分:9)
维护状态变量。当用户点击提交按钮设置状态为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兼容性的跨浏览器。
答案 1 :(得分:2)
简单。
只有一个全局变量
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?';
};