vue实现获取验证码倒计时组件

vue实现获取验证码倒计时组件

1、效果图
在这里插入图片描述
2、html

<div class="code-input">
<!--验证码输入框-->
    <el-input
       placeholder="验证码"
       v-model="codeNumber"
       onkeyup="this.value=this.value.replace(/[^\d.]/g,'');"
       maxlength="5"
    >
    </el-input>
<!--验证码按钮-->
    <el-button type="primary" @click.native.prevent="SendCode" :disabled="disabled=!show">
       <span v-show="show">获取验证码</span>
       <span v-show="!show" class="count">{{count}} s</span>
    </el-button>
</div>

2、script

data () {   
    return {
      phone:this.isphone,
      show: true,  // 初始启用按钮
      count: '',   // 初始化次数
      timer: null,
      codeNumber: '',
      isSendCode: false
      }
},
methods: {
    SendCode () {
      this.isSendCode = true;
      const TIME_COUNT= 60;
      if (!this.timer) {
                this.count = TIME_COUNT;
                this.show = false;
                this.timer = setInterval(() => {
                  if (this.count > 0 && this.count <= TIME_COUNT) {
                    this.count--;
                  } else {
                    this.show = true;
                    clearInterval(this.timer);  // 清除定时器
                    this.timer = null;
                  }
                }, 1000)
              };
    }
  },

3、css

div {
    display: table;
    text-align: left;
    margin-left: 15%;
    .el-input {
      display: table-cell;
      width: 50%;
    }
    input {
      width: 70%;
      margin: 0 auto;
      border-bottom: 1px solid #E4E4E4;
      border-top:0px;
      border-left:0px;
      border-right:0px;
    }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值