其他分享
首页 > 其他分享> > vue 实现验证码倒计时60s发送

vue 实现验证码倒计时60s发送

作者:互联网

<template>
    <div>
        <div class="input-div" v-show="formData.phone">
            <input type="text" class="input code" name="code" v-model.trim="formData.code" placeholder="验证码">
            <button @click="getCode(formData)" class="code-btn" :disabled="!show">
                <span v-show="show">获取验证码</span>
                <span v-show="!show" class="count">{{count}} s</span>
            </button>
        </div>
    </div>
</template> 
<script>
import $ from 'jquery'
const TIME_COUNT = 60;
export default{
    data(){
        return {
            formData: {
                phone:'15933527109',
                code:'',
            },
            show: true,
            count: '',
            timer: null,
        }
    },
    methods:{
        getCode(formData){
            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)
            }
        } 
    }
}
</script>   

标签:count,COUNT,vue,60s,show,formData,验证码,timer,TIME
来源: https://blog.csdn.net/baidu_41601299/article/details/100034633