![]() |
1
325
2018年更新 最好的 解决方法是使操作幂等,以便重复提交是无害的。
应通过数据库中的唯一性检查来检测重复项,以防止出现争用情况。
你禁用了所有的输入,包括表单应该提交的数据。 要仅禁用“提交”按钮,请 能够 请执行以下操作:
然而,我不认为IE会提交的形式,即使这些按钮被禁用。我建议换一种方法。 一个jQuery插件来解决这个问题
我们刚刚用下面的代码解决了这个问题。这里的技巧是使用jQuery的
像这样使用:
如果有AJAX表单 应该 如果允许每个页面加载多次提交,您可以为它们指定一个类,然后将它们从选择器中排除,如下所示:
|
![]() |
2
47
怎么做
当表单提交时,它将禁用里面的所有提交按钮。
|
|
3
20
编辑
|
![]() |
4
9
为了总结前面的所有答案,这里有一个插件,可以跨浏览器工作。
为了解决Kern3l,计时方法对我来说很有效,因为我们试图停止双击submit按钮。如果您对提交有很长的响应时间,我建议用微调器替换提交按钮或表单。
|
![]() |
5
8
请退房 jquery-safeform 插件。
|
![]() |
6
4
只读 元素。 而且,不能像那样禁用锚点。您需要删除他们的href(不推荐)或阻止他们的默认行为(更好的方法),例如:
|
![]() |
7
4
approach .
|
![]() |
8
4
Nathan的代码,但用于jQuery验证插件如果您碰巧使用jqueryvalidate插件,那么它们已经实现了提交处理程序,在这种情况下,没有理由实现多个。代码:
您可以在
|
![]() |
9
2
最后,我利用这篇文章中的想法想出了一个与AtZako版本非常相似的解决方案。
像这样使用:
我发现解决方案不包括某种超时,只是禁用了提交或禁用了表单元素,导致了问题,因为一旦锁定被触发,在刷新页面之前就不能再次提交。这给我在做ajax的时候带来了一些问题。 这可能是装饰了一点,因为它不是那么花哨。 |
![]() |
10
2
如果使用
AJAX
|
![]() |
11
2
对Nathan的bootstrap3的解决方案做了一点修改。这将为submit按钮设置一个加载文本。此外,它将在30秒后超时,并允许重新提交表单。
|
![]() |
12
2
使用两个提交按钮。
和jQuery:
|
![]() |
13
2
打电话给我
|
![]() |
14
1
如果您没有任何客户端验证,那么您可以简单地使用jqueryone()方法,如本文所述。
如果你像我一样做客户端验证,那就稍微有点棘手了。上面的示例不允许您在验证失败后再次提交。试试这个方法
|
![]() |
15
1
你可以通过这个停止第二次提交
|
![]() |
16
0
我的解决方案:
|
![]() |
17
0
在我的例子中,表单的onsubmit有一些验证代码,所以我增加了 Nathan Long
|
![]() |
18
0
更改提交按钮:
带普通按钮:
然后使用单击功能:
|
![]() |
19
0
|
![]() |
20
0
为什么不这样做呢--这会提交表单,但也会禁用提交按钮,
另外,如果使用jQuery Validate,可以将这两行放在
|
![]() |
21
0
此代码将在按钮标签上显示加载,并将按钮设置为 禁用状态,然后在处理之后,重新启用并返回原始按钮文本**
|
![]() |
22
-1
|
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
![]() |
assembler · Nextjs没有处理发布请求 1 年前 |
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |