如果禁用某个按钮,则不会提交表单

时间:2013-03-14 18:00:56

标签: php html forms submit form-submit

此代码确认用户填写表单的信息。

在我第一次提交时,我使用此代码并阻止表单提交两次:

<td width="30%" align="left">
    <input name="Submit" type="submit" value="OK" onclick="this.disabled=true; this.value='Sending...'; selectCarMakeModel.submit();"/>
</td>

但是在确认码上,在我的第二次提交中,如果我想在onc​​lick中添加“this.disable”它不会工作,不是在命令之前或之后,它只是保持空闲状态:

<form name="selectCarMakeModel" action="<?=$_SERVER['REQUEST_URI']?>" method="post">
    <?
    foreach($_POST as $key => $val) {
        echo '<input type="hidden" name="'. $key .'" value="'. myHTMLSpecialChars($val) .'">' . "\n";
    }
    ?>
    <input type="hidden" name="sticky" value="showForm">
    <input type="submit" name="goBack" value="No, Go Back">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="submit" name="submit" value="Si, continue" onClick="this.form.sticky.value='continue'">
</form>

由于

编辑:抱歉,抱歉...我没有正确地问它,第一个代码工作正常,问题是在第二个代码中如果我单击提交按钮两次表单被提交两次,所以我尝试添加“this.disable”函数,但在第二个代码不能工作,如果我添加它不会处理,如果我不添加它有时表单会发送两次。

3 个答案:

答案 0 :(得分:2)

disabled元素不会触发事件。您必须启用该属性,然后才能触发该事件。

答案 1 :(得分:1)

您需要将要提交的内容设置为隐藏,然后您可以在第一次单击后禁用提交,(提交隐藏值)。用户将无法提交两次,并且将提交值

答案 2 :(得分:0)

提交后需要重新启用:

onclick="this.disabled=true; this.value='Sending...'; selectCarMakeModel.submit();this.disabled=false;"

这应该在下次安排。