Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我在第一次单击后禁用提交时,为什么我的表单不提交?_Php_Jquery_Submit - Fatal编程技术网

Php 当我在第一次单击后禁用提交时,为什么我的表单不提交?

Php 当我在第一次单击后禁用提交时,为什么我的表单不提交?,php,jquery,submit,Php,Jquery,Submit,我试图禁用表单上的提交按钮,这样当用户单击两次时,它就不会再次提交。我知道这里已经有一些问题可以解决这个问题,但提供的解决方案似乎不起作用 我正在使用此处提供的解决方案: 以下是我的jQuery: $('form#proof_form').submit(function(){ $(this).children('input[type=submit]').attr('disabled', 'disabled'); }); 按下submit按钮后,应该将保存的值输入数据库,然后重定向到另一

我试图禁用表单上的提交按钮,这样当用户单击两次时,它就不会再次提交。我知道这里已经有一些问题可以解决这个问题,但提供的解决方案似乎不起作用

我正在使用此处提供的解决方案:

以下是我的jQuery:

$('form#proof_form').submit(function(){
    $(this).children('input[type=submit]').attr('disabled', 'disabled');
});
按下submit按钮后,应该将保存的值输入数据库,然后重定向到另一个页面。相反,它现在在不重定向的情况下重新加载当前页面。我在用户按下submit按钮之后放置了一个测试回音,但它不起作用。此外,该值不再发布到DB,因此我知道它在发送到DB和重定向之前禁用了submit按钮

以下是我的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);
}

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

如果同一页面正在刷新,我想您忘了放置
表单的
操作
属性。
你应该有这个:

<form action="your_action" ...> 
  ... 
</form>

... 
希望这有帮助。干杯

您忘记了“返回错误”

请尝试以下方法:

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

我猜“accept_-proof”是您提交按钮的名称,因此,由于在提交表单之前该按钮已被禁用,因此它的值不会在发送到服务器的帖子中设置
isset($\u POST['accept\u proof'])
返回false,如果
中的代码未执行,则返回


您需要以其他方式检查已发布的表单,例如,
isset()
在表单的另一个字段上。

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

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

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

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


希望这有帮助

表单提交时按钮提交时没有JS事件吗?如果你把那一行去掉,不去管其他事情,它真的有效吗?他正在重定向到另一个页面。提交事件返回false会阻止表单提交。按钮将正确禁用,但页面将仅停留在那里。(这是一个服务器端问题,因此无法在JSFIDLE上真正演示。)