JavaScript手机验证码倒计时

Posted 嘻嘻的妙妙屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript手机验证码倒计时相关的知识,希望对你有一定的参考价值。

手机验证码倒计时

样式

点击“发送手机验证码”开启倒计时:

开启倒计时后,再次点击不会发起再次请求:

index.vue

<p class="title">
 <span class="required">*</span>
 <span>手机号验证:</span>
</p>
<el-input v-model="verify" placeholder="输入验证码" style="width: 116px;"></el-input>
<span class="btn_verify" @click="sendCode">timer === 0 ? '发送手机验证码' : `$timers后重新获取`</span>

index.scss

.title 
  height: 32px;
  line-height: 32px;
  width: 130px;
  text-align: right;
  .required 
    color: #F76560;
  

.btn_verify 
  cursor: pointer;
  color: #FFB200;
  margin-left: 8px;
  line-height: 32px

index.js

import  sendVerifyCode  from '@/api/myApi'

export default 
  name: 'applyModal',
  data() 
    return 
      timer: 0,
      verify: null,
      params: 
    
  ,
  mounted() 
    if (this.params.id !== this.$route.query.id) 
      this.params.id = +this.$route.query.id
    
  ,
  watch: 
    $route () 
      if (this.params.id !== this.$route.query.id) 
        this.params.id = +this.$route.query.id
      
    
  ,
  methods: 
    sendCode () 
      // 开启倒计时效果
      if (this.timer === 0) 
        this.timer = 60
        setInterval(() => 
          if(this.timer <= 0) 
            return
           else 
            // 单次定时任务执行的回调
            this.timer--
          
        ,
        1000,
        
          // 默认不开启定时任务
          immediate: false
        )
       else 
        return
      
      let query = 
      query.id = +this.params.id
      // 发送请求
      sendVerifyCode(JSON.stringify(query)).then((res) => 
        if (res.data.status === 0) 
          this.$message.success(res.data.msg || '手机验证码已发送,请注意查收!')
         else 
          this.$message.error('手机验证码发送失败!')
        
      )
    
  

以上是关于JavaScript手机验证码倒计时的主要内容,如果未能解决你的问题,请参考以下文章

jQuery手机发送验证码倒计时代码

JavaScript - 倒计时

jquery实现手机发送验证码的倒计时代码

JavaScript + PHP 实现刷新继续保持倒计时的按钮

获取手机验证码倒计时那些事

js获取手机验证码倒计时的实现