验证码验证

237 阅读1分钟

简单验证码,用户点击发送验证码后,随机生成由数字字母组成的验证码,随后按钮开始倒计时(此时按钮不可用),60秒后可以重新

code() {发送验证码
    let code = "";
    //验证码的长度   
    let codeLength = 6;
    //生成随机数,作为验证码
    let random = [0123456789'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,
          btnBooltrue
        })
      }
      //如果时间到0,则可以重新获取
      else {
        this.setState({
          btnText'发送验证码',
          btnBoolfalse,
          num: code,
        })
      }
    }, 1000);
    
  }