【发布时间】: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:
【问题讨论】:
标签: javascript jquery forms google-chrome