微信小程序手机验证码获取倒计时 刷新页面也会继续
wx.ml
<view class="item {{change2?'change_border':''}}"> <label for="">验证码</label> <input type="testmsg" value="{{testmsg}}" data-index="2" bindblur="nochanegBorder" bindinput="changeValue" bindfocus="changeBorder" placeholder="请输入密码" /> <view class="test {{getTest?'':'test_active'}}" bindtap="{{getTest?'':'getTestMsg'">{{getTest?'重新获取'+waitTime/1000+'S':'获取验证码'}}</view>
</view>
wx.js
onLoad: function (options) { let that = this; let waitTime = wx.getStorageSync('waitTime') let getTest = wx.getStorageSync('getTest') if (waitTime) { that.setData({ waitTime },()=>{ if(waitTime!==0 && waitTime!==60000){
that.getTestMsg() } }) } else { wx.setStorageSync('waitTime', 60000) } if (getTest) { that.setData({ getTest }) } else { wx.setStorageSync('getTest', false) } }, getTestMsg() { const that = this; let waitTime = wx.getStorageSync('waitTime'); console.log(waitTime) if (!that.data.getTest) { that.setData({ getTest: true },()=>{ wx.setStorageSync('getTest',true) }) } //发送验证码 if (waitTime == 0) { that.setData({ getTest: false }, () => { wx.setStorageSync('waitTime', 60000) wx.setStorageSync('getTest', false) }) //重新获取验证码 } else { setTimeout(() => { waitTime = waitTime - 1000; that.setData({ waitTime }, () => { wx.setStorageSync('waitTime', waitTime) return that.getTestMsg() }) }, 1000) } }
微信小程序验证码JS获取最新
demo() { const that=this; //获取最新时间 let newTime = new Date().getTime(); //获取旧时间 wx.getStorage({ key: "oldTime", complete(res) { //旧时间不存在 if (!res.data) { wx.setStorage({ key: "oldTime", data: newTime, success() { //递归调用demo return that.demo(); } }) } else { //旧时间存在 let oldTime = res.data; let Timeresult = parseInt((newTime - oldTime) / 1000) * 1000; if (Timeresult >60000) { //清楚旧时间 wx.removeStorage({ key: 'oldTime' }) } else { //延时 setTimeout(() => { that.setData({ waitTime:(60000 - Timeresult)/1000 },()=>{ if(Timeresult==0){ //发送验证码 return that.demo(); }else{ //递归调用demo return that.demo(); } }) }, 1000) } } } }) }