【问题标题】:Can't detect when user close a Chrome alert dialog无法检测到用户何时关闭 Chrome 警报对话框
【发布时间】:2017-07-13 23:54:41
【问题描述】:

如果连接速度很慢并且用户一直按“提交”按钮,我会遇到用户提交多个表单的问题。

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

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

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

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

您要离开此网站吗?

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

离开 留下

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

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

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

这是一个演示问题的 jsfiddle:

jsfiddle

【问题讨论】:

    标签: javascript jquery forms google-chrome


    【解决方案1】:

    如果用户决定留下来,您无法收听任何事件,但您可以启用 onbeforeunload 回调中的按钮以防他们这样做

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 2018-07-22
      • 2015-12-16
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多