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

时间:2013-01-31 11:39:15

标签: javascript jquery confirm

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

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

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

2 个答案:

答案 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?';
};