vue 获取验证码倒计时

html部分

<div class="form-code">
  <input type="number" v-model="codeVer" placeholder="请输入验证码" />
  <button type="button" @click="getCode()" :class="{on:showBtnOn}" v-text="codeText"></button>
</div>
codeText按钮上显示的文字;
getCode为按钮点击事件;
codeVer为验证码;
showBtnOn:是否添加button上的class on

css部分,按钮点击的时候给一个灰色背景:

.form-code button.on{background-color:#999}

在date中定义双向绑定的部分

data: {
  howBtnOn:false,
  codeVer:'',
  codeText:'获取验证码'
},    

点击方法getCode开始倒计时:

var time = 60;
var timer = setInterval(function(){
  time--;
  vm.codeText = time+"秒重发"
  vm.showBtnOn = true;
  
  //time==0 时,倒计时结束,按钮切换为原来的颜色,清除定时器
  if(time==0){     clearInterval(timer);     vm.codeText = "获取验证码";     vm.showBtnOn = false;   } },1000);

  

原文地址:https://www.cnblogs.com/yeziyou/p/13495460.html