不要问,如果确认用户提交表单(Dont ask confirm if user submit the

2019-07-19 01:27发布

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

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

这是工作fine.But我的问题是,当用户尝试使用提交按钮确认框会出现提交表单。 我不想问,如果确认用户提交表单,否则我想问确认。 这怎么可能?

Answer 1:

保持的状态变量。 当用户点击提交按钮设置状态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交叉检查。



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


文章来源: Dont ask confirm if user submit the form