支付宝小程序短信倒计时

本文介绍了一种在页面上实现验证码倒计时功能的方法,通过定义CountDown类,使用Promise进行时间控制,确保验证码在设定时间内不可重复请求。文章详细展示了如何在页面加载时初始化倒计时,并在点击事件中启动倒计时流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义方法

class CountDown {
  //captchaClickable是否允许点击
  constructor(page) {
    this.page = page;
    this.initSeconds = 60;
    this.page.setData({ captchaTxt: '获取验证码', captchaDisabled: false });
  }
  start() {
    // console.info('进入倒计时');
    var that = this;
    var seconds = that.initSeconds;
    that.page.setData({ captchaDisabled: true, captchaTxt: seconds+'秒'});
    let promise = new Promise((resolve, reject) => {
      let setTimer = setInterval(
        () => {
          seconds -= 1;
          // console.info('倒计时:' + seconds);
          that.page.setData({
            captchaTxt: seconds + '秒',
            captchaDisabled: true
          })
          if (seconds <= 0) {
            that.page.setData({
              captchaTxt: '获取验证码',
              captchaDisabled: false
            })
            resolve(setTimer)
          }
        }
        , 1000)
    })
    promise.then((setTimer) => {
      clearInterval(setTimer)
    })

  }
}
module.exports = CountDown;

页面引用

var CountDown = require('../../utils/countdown.js'); 

在Onload

 onLoad(query) {
    // 页面加载 
    this.countdown = new CountDown(this);
  },

事件点击事件时调用

that.countdown.start();

参考 榛子云 原文章下方

http://smsow.zhenzikj.com/bbs/question/detail/74.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值