Wechat mini program sends verification code after 60 seconds countdown function, effect picture:
The complete code
index.wxml
<! --index.wxml--> <view class="container">
<view class="section"> < span style = "box-sizing: border-box! Important"Please enter your mobile phone number." type="number" maxlength="11" bindinput="inputPhoneNum" auto-focus />
<text wx:if="{{send}}" class="sendMsg" bindtap="sendMsg"> send </text> <text wx:if="{{alreadySend}}" class="sendMsg" >{{second+"s"}}</text>
</view>
</view>
Copy the code
index.wxss
/**index.wxss**/
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
}
.section {
display: flex;
margin: 16rpx;
padding: 16rpx;
border-bottom: 1rpx solid #CFD8DC;
}
text {
width: 200rpx;
}
button {
margin: 16rpx;
}
.sendMsg {
font-size: 12;
margin-right: 0;
padding: 0;
height: inherit;
width: 80rpx;
}
Copy the code
index.js
//index.js // getApp instance const app = getApp() Page({data: {send:true,
alreadySend: false,
second: 60,
disabled: true,
phoneNum: ' '}, // Phone number part inputPhoneNum:function (e) {
let phoneNum = e.detail.value
this.setData({
phoneNum: phoneNum
})
},
sendMsg: function () {
var phoneNum = this.data.phoneNum;
if(phoneNum == ' '){
wx.showToast({
title: 'Please enter your mobile phone number',
icon: 'none',
duration: 2000
})
return; } // this. SetData ({alreadySend:true,
send: false
})
this.timer()
},
showSendMsg: function () {
if(! this.data.alreadySend) { this.setData({ send:true
})
}
},
hideSendMsg: function () {
this.setData({
send: false,
disabled: true,
buttonType: 'default'
})
},
timer: function () {
let promise = new Promise((resolve, reject) => {
let setTimer = setInterval(
() => {
this.setData({
second: this.data.second - 1
})
if (this.data.second <= 0) {
this.setData({
second: 60,
alreadySend: false,
send: true
})
resolve(setTimer)
}
}
, 1000)
})
promise.then((setTimer) => {
clearInterval(setTimer)
})
},
})
Copy the code
Complete login message authentication code examples of reference: blog.csdn.net/zuoliangzhu…