jerome123 发表于 2018-12-24 11:46:25

关于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里的,应该怎么做呢?

不二如是 发表于 2018-12-24 13:38:02

鱼油把完整代码贴一下哈

可乐爱宅着 发表于 2019-1-18 23:34:11

你是想做发送短信后倒计时60S内不能按按钮吧?用setInterval可以实现,不过这种实现应该不严谨的,毕竟可以越过,还需要后台做配合。弄个缓存之类的。

行客 发表于 2019-1-19 08:18:07

本帖最后由 行客 于 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]
查看完整版本: 关于JS定时循环的问题