禁用双提交会阻止发送提交名称

时间:2016-07-05 15:51:04

标签: javascript php jquery forms

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

我有两种形式:

{ "column1":"int","column2":"varchar(255)","column3":"column3Type..." }

这个JavaScript可以防止双重提交:

<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>

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

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

但JS正在阻止这个,为什么?

我可以从第二,第三......表单接收提交if(isset($_POST['form_1'])) { // form 1 submitted } if(isset($_POST['form_2'])) { // form 2 submitted } 。但不是来自页面上的第一个表格。

更新

删除了双重ID,而是添加了类:

name=""

这个JavaScript可以防止双重提交:

<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>

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

也尝试了$("form").one('submit', function() { $('.single-submit').prop("disabled", true); }); ,没有运气 所以JS似乎还有问题。

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

1 个答案:

答案 0 :(得分:2)

使用class代替idid="single-submit"

id必须是唯一的。