小程序按钮倒计时结束时出现问题,非常困惑

新手上路,请多包涵

写了一个button,倒计时10s。奇怪的是倒计时结束时,disable属性都被修改了,但文本却没有被修改成“发送验证码”,这是为什么?
最开始这样微信图片_20191021110829.png
然后按了之后这样(此时disable=true)微信图片_20191021110845.png
倒计时结束变成了这样(disable=false文本却没有变)微信图片_20191021110849.png

wxml代码
timeisout就是存储的文本,理论上应该“发送验证码”=>“正在发送”=>“发送验证码”

<button class="sentbtn" bindtap="sendmsg" disabled="{{disable}}">{{timeisout}}</button>

js代码
有注释??的那一行没有修改timeisout。

      sendmsg: function() {
        var toggle = 1;
        if (toggle === 1) {
          toggle = 0;
          var timer = this;
          timer.setData({
            disable: true
          });
          var time = 10;
          var controller = setInterval(function(e) {
            if (time <= 0) {
              toggle = 1;
              timer.setData({
                timeisout: '发送验证码',//???????
                disable: false,
              })
              clearInterval(controller);
            }
            timer.setData({
              timeisout: '正在发送('+time+'s)',
            })
            time--;
          }, 1000);
        }
      },
阅读 2.8k
2 个回答
            if (time <= 0) {
              toggle = 1;
              timer.setData({
                timeisout: '发送验证码',//???????
                disable: false,
              })
              clearInterval(controller);
            }else{
                        timer.setData({
              timeisout: '正在发送('+time+'s)',
            })
            }
新手上路,请多包涵

yzm_count: function(e) {

if (this.data.n <= 0) {
  this.setData({
    yzm_v: '获取验证码',
    yzm_style: 'color:#f60;border:1px solid #f60;',
    n: 60,
    flag: true
  })
  return;
}

var that = this;
var n = this.data.n;
this.setData({
  yzm_v: n,
  yzm_style: 'color:#999;border:0px solid #f60;',
  n: n - 1
})

setTimeout(function() {
  that.yzm_count()
}, 1000);

},

我自己小程序是这样写验证码倒计时的 ,希望对你有帮助

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题