此代码确认用户填写表单的信息。
在我第一次提交时,我使用此代码并阻止表单提交两次:
<td width="30%" align="left">
<input name="Submit" type="submit" value="OK" onclick="this.disabled=true; this.value='Sending...'; selectCarMakeModel.submit();"/>
</td>
但是在确认码上,在我的第二次提交中,如果我想在onclick中添加“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">
<input type="submit" name="submit" value="Si, continue" onClick="this.form.sticky.value='continue'">
</form>
由于
编辑:抱歉,抱歉...我没有正确地问它,第一个代码工作正常,问题是在第二个代码中如果我单击提交按钮两次表单被提交两次,所以我尝试添加“this.disable”函数,但在第二个代码不能工作,如果我添加它不会处理,如果我不添加它有时表单会发送两次。
答案 0 :(得分:2)
disabled
元素不会触发事件。您必须启用该属性,然后才能触发该事件。
答案 1 :(得分:1)
您需要将要提交的内容设置为隐藏,然后您可以在第一次单击后禁用提交,(提交隐藏值)。用户将无法提交两次,并且将提交值
答案 2 :(得分:0)
提交后需要重新启用:
onclick="this.disabled=true; this.value='Sending...'; selectCarMakeModel.submit();this.disabled=false;"
这应该在下次安排。