连续点击按钮前端防止重复提交

当触发点击事件后,在此事件没完成之前,不能再触发点击事件,在事件完成后才能再次点击 目前想到两种解决方案 1.点击后,把按钮或链接的disabled设为true,让它变成不可用状态;请求成功之后在变成可点击状态 div按钮

<div id="but" onclick="savePay()">提交</div>
.disable {
          
   
	pointer-events: none;
}
function savePay() {
          
   
	// 禁用点击事件
	$("#but").addClass("disable");

	// 提交业务

	// 10秒后启用点击事件
	setTimeout(function(){
          
   
		$("#but").removeClass("disable");
	},10000);
}

button按钮

<input type="button" id="but" onclick="savePay()" value="提交"/>
function savePay() {
          
   
	// 禁用点击事件
	$("#but").attr("disabled",true);

	// 提交业务

	// 10秒后启用点击事件
	setTimeout(function(){
          
   
		$("#but").removeAttr("disabled");
	},10000);
}

2.通过开闭原则在程序中判断和设定

var doing=false;//定义一个全局变量
$("button.do").on("click",function(){
          
   
    if(doing){
          
   
        alert("上一个操作未完成");
    }else{
          
   
        doing=true;//变量设为true,表示开始操作
        //do something 如ajax
        $.ajax({
          
   url:"地址"}).done(function(){
          
   
            doing=false; //变量改回false 表示结束操作
        });;
    }
});
经验分享 程序员 微信小程序 职场和发展