在第一次点击后禁用提交时,为什么我的表单没有提交?

时间:2011-05-06 07:49:19

标签: php jquery submit

我正在尝试禁用表单上的提交按钮,因此当用户点击两次时,它将不会再次提交。我知道这里已经有一些问题可以解决这个问题,但所提供的解决方案似乎并没有起作用。

我正在使用此处提供的解决方案:Disable submit button on form submit

这是我的jQuery:

$('form#proof_form').submit(function(){
    $(this).children('input[type=submit]').attr('disabled', 'disabled');
});

按下提交按钮后,应该将保存的值输入到数据库,然后重定向到另一个页面。相反,它现在重新加载当前页面而不重定向。我在用户按下提交按钮后立即放置了测试回显,但它不起作用。此值也不再发布到数据库,因此我知道它在发送到数据库并重定向之前禁用了提交按钮。

这是我的php:

if(isset($_POST['accept_proof'])){
    echo 'The form was submitted!';
    $sql = 'INSERT into orders SET
          name = "' . $_SESSION['name'] . '"';
    $conn->query($sql) or die($conn->error);
}

为什么第一次点击后按钮没有提交?

4 个答案:

答案 0 :(得分:1)

你忘记了“返回假”;

请改为尝试:

$('form#proof_form').submit(function(){
    $(this).children('input[type=submit]').attr('disabled', 'disabled');
    return false;
});

它对我有用。 http://jsfiddle.net/5S72w/2/

答案 1 :(得分:1)

Disabled HTML form elements are not submitted

我猜'accept_proof'是提交按钮的名称,因此,因为它在提交表单之前被禁用,所以它的值不会在POST中设置到服务器; isset($_POST['accept_proof'])返回false,而if中的代码未执行。

您需要以其他方式检查POST表单,例如isset()在表单中的其他字段上。

答案 2 :(得分:0)

如果相同的网页令人耳目一新,我认为您忘记了form的{​​{1}}属性。 你应该这样:

action

HOpe这有帮助。干杯

答案 3 :(得分:0)

我整天都被困在这一天。我的提交按钮版本调用验证函数onclick,然后在验证结束时禁用该按钮。我遇到的问题是,由于按钮被禁用,并且表单的操作不是我需要的,因此按钮在禁用后不会提交表单。

在互联网上搜索了几个小时之后,我发现我所要做的就是在禁用提交表单后调用我的表单的submit()功能。

因此,如果我的表单名称为myform

然后在禁用后调用myform.submit()

希望这有帮助