简单验证码,用户点击发送验证码后,随机生成由数字字母组成的验证码,随后按钮开始倒计时(此时按钮不可用),60秒后可以重新
code() {发送验证码
let code = "";
//验证码的长度
let codeLength = 6;
//生成随机数,作为验证码
let random = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
for (let i = 0; i < codeLength; i++) {
//取得随机数的索引(0~35)
let index = Math.floor(Math.random() * 36);
//根据索引取得随机数加到code上
code += random[index];
}
this.setState({
num: code
})
// 清除定时器
clearInterval(this.timer)
let maxTime = 60;
// 设置按钮倒计时的时间
this.timer = setInterval(() => {
//如果一直是0-60之间,按钮不可用,按钮文字变成重新获取的时间
if (maxTime > 0) {
--maxTime;
this.setState({
btnText: '重新获取' + maxTime,
btnBool: true
})
}
//如果时间到0,则可以重新获取
else {
this.setState({
btnText: '发送验证码',
btnBool: false,
num: code,
})
}
}, 1000);
}