【问题标题】:Disabling double submit prevent sending submit name [duplicate]禁用双重提交防止发送提交名称[重复]
【发布时间】:2016-07-05 15:51:04
【问题描述】:

我的多表单页面遇到了错误:

我有两种形式:

<form>
<input type="submit" id="single-submit" name="form_1" value="Submit 1"/>
</form>

<form>
<input type="submit" id="single-submit" name="form_2" value="Submit 2"/>
</form>

还有这个防止双重提交的JavaScript:

$("form").one('submit', function() {
    $('#single-submit').prop("disabled", true);
});

我正在尝试在 php 中获取提交名称:

if(isset($_POST['form_1']))
{
    // form 1 submitted
}

if(isset($_POST['form_2']))
{
    // form 2 submitted
}

但是 JS 阻止了这一点,为什么?

我可以收到来自第二、第三...表单的提交name=""。但不是来自页面上的第一个表单。

更新:

删除了双id,添加了类:

<form action="example.com/process" method="post" accept-charset="utf-8">
<input type="submit" class="single-submit" name="form_1" value="Submit 1"/>
</form>

<form action="example.com/process" method="post" accept-charset="utf-8">
<input type="submit" class="single-submit" name="form_2" value="Submit 2"/>
</form>

还有这个防止双重提交的JavaScript:

$("form").one('submit', function() {
    $('.single-submit').prop("disabled", true);
});

此外,现在第一个和第二个表单不返回提交名称。

也尝试了on(,但没有运气。
所以看来 JS 还是有问题的。

没有这个 JS,一切都按预期工作。

【问题讨论】:

  • $("form").one('submit',尝试使用on( 而不是one(
  • 错字?? $("form").one
  • 你有重复的id,这是非法的html。修复你的 html,事情可能会开始变得更好。
  • 不是错字....one 只触发一次。谷歌它!
  • 请更新您的问题以反映所有详细信息。评论不适合包含问题的详细信息或当前状态。由于您的问题目前已关闭,唯一 重新打开它(并且可用于新答案)的方法是以清楚地表明它不是重复的方式充分描述问题。跨度>

标签: javascript php jquery forms


【解决方案1】:

在此使用class 而不是idid="single-submit"

id 必须是唯一的。

【讨论】:

  • 已更改,但问题保持不变,除了现在我没有收到来自两个表单的提交 name
  • 嘿...你希望它在哪里被“接收”。您是否设置了 actionmethod ?它看起来像这样:&lt;form action="some.php" method"post"&gt;.
  • 是的,只是不想把所有的东西都放上来,所以更清楚。正如我所提到的,没有这个阻止双击的 JS 块,一切都按预期工作,以确保在测试期间我删除了其他 JS。
  • 您应该编辑您的问题...因为id 问题不是唯一的问题。因此,您的问题现在被标记为 [重复]。如果您编辑它...包括所有相关代码,它将被重新打开。点击问题下方的“编辑”链接。
猜你喜欢
  • 1970-01-01
  • 2012-04-05
  • 2011-03-12
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
相关资源
最近更新 更多