连续点击按钮前端防止重复提交
当触发点击事件后,在此事件没完成之前,不能再触发点击事件,在事件完成后才能再次点击 目前想到两种解决方案 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 表示结束操作
});;
}
});
