开发日志:JS防止表单重复提交【优化版本】

本文介绍了两种防止网页表单重复提交的方法。一种是在点击事件中控制按钮状态,另一种是利用表单的onsubmit事件来实现。通过这些技巧可以有效避免因用户误操作导致的数据错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

防止表单重复提交

之前的方案:

触发点击事件的时设置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>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值