关于JS定时循环的问题
var num = 60;$('#sms').click(function () {
$('#phone').blur();
n = 0;
n += $('#phone').data('s');
if(n == 1){
if(num == 0){
this.removeAttribute("disabled");
this.value="获取验证码";
countdown = 60;
return false;
}else{
this.setAttribute("disabled",true);
this.value = "重新发送("+num+")";
}}
else{
console.log('321')
}
});
我想让else这里能够让num一直刷新起来,直到0,按钮恢复成if里的,应该怎么做呢? 鱼油把完整代码贴一下哈 你是想做发送短信后倒计时60S内不能按按钮吧?用setInterval可以实现,不过这种实现应该不严谨的,毕竟可以越过,还需要后台做配合。弄个缓存之类的。 本帖最后由 行客 于 2019-1-19 10:18 编辑
给你个例子,相信你能自己改出来。如果确实弄不成功,请再继续跟帖。
var wait = 60;
function countdown(obj, msg) {
obj = $(obj);
if (wait == 0) {
obj.removeAttr("disabled");
obj.val(msg);
wait = 60;
} else {
if (msg == undefined || msg == null) {
msg = "获取验证码";
}
obj.attr("disabled", "disabled");
obj.val(wait + "秒,重新发送");
wait--;
setTimeout(function() {
countdown(obj, msg)
}, 1000)
}
}
页:
[1]