我正在尝试禁用表单上的提交按钮,因此当用户点击两次时,它将不会再次提交。我知道这里已经有一些问题可以解决这个问题,但所提供的解决方案似乎并没有起作用。
我正在使用此处提供的解决方案: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);
}
为什么第一次点击后按钮没有提交?
答案 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()
。
希望这有帮助