防止表单重复提交
之前的方案:
触发点击事件的时设置button的disabled设置为true,当符合提交条件时,手动获取form表单调用submit()事件,如果不符合提交条件,则将disabled设置回false
<html>
<script>
//验证
function checkOk(){
var submitBtn = document.getElementById("submitBtn");
var title = document.getElementById("title");
var frmAction = document.getElementById("frmAction");
submitBtn.disabled=true;//禁用按钮
if(title!=""){
alert("提交成功");
frmAction.submit();//按钮disabled=true后,不再触发提交事件,需要手动提交
}else{
alert("标题不能为空!");
submitBtn.disabled=false;//恢复按钮
}
}
</script>
<form action="XXX.action" id="frmAction">
<input type="text" id="title" value="标题"/><br/>
<input type="submit" id="submitBtn" value="提交" onclick="checkOk()"/>
</form>
</html>
新方案:
将button的disabled=true逻辑设置在form表单的onsubmit事件中,只要触发提交方法时才设置disabled为true。
<html>
<script>
//验证
function checkOk(){
var title = document.getElementById("title");
if(title!=""){
return true;
}else{
alert("标题不能为空!");
return false;
}
}
function btnDisabled(){
document.getElementById("submitBtn").disabled=true;
alert("开始提交");
}
</script>
<form action="XXX.action" id="frmAction" onsubmit="btnDisabled()">
<input type="text" id="title" value="标题"/><br/>
<input type="submit" id="submitBtn" value="提交" onclick="checkOk()"/>
</form>
</html>