用户关闭Chrome警报对话框时无法检测到

时间:2017-07-13 15:27:38

标签: javascript jquery forms google-chrome

如果用户提交多个表单,如果连接速度很慢并且他们一直按下"提交"按钮。

我有2个提交按钮,一个叫做"下一个"另一个被称为"上一个"。两个按钮都提交表单数据,然后重定向到相应的页面。

为了防止表单重复提交,我需要禁用提交按钮。但是,如果dom已更改并且我使用了jquery' $('form').submit(),则Chrome会显示警告,警告用户他们正在离开该页面。如果用户决定通过点击"逗留"停留在页面上按钮,对话框关闭但我无法知道。我的按钮仍处于禁用状态。

$("#button").click(function(event) {
    event.preventDefault();
    $(".btn").attr("disabled", true);
    $(this).closest("form").submit();
});

但是,如果表单已被更改,则会弹出此消息:

  

您想离开此网站吗?

     

您所做的更改可能无法保存。

     

离开 留下

如果用户决定留下,我的按钮将无法重新启用。

我似乎无法覆盖window.onbeforeunload事件,因为我继承的可怕网络代码已经在处理该事件,我不想破坏当前的功能。

有没有办法检测用户在该Chrome对话框中选择的内容,以便重新启用我的按钮?

这是一个证明问题的方法:

jsfiddle

1 个答案:

答案 0 :(得分:0)

如果用户决定留下您没有可以收听的事件,但您可以启用onbeforeunload回调中的按钮(如果他们这样做)