vue中点击获取验证码倒计时60秒

点击获取短信验证码倒计时60秒
点击后,获取短信验证码按钮禁止点击,后台有返回时,才进行倒数,

<temlplate>
<el-form :model="registerdeFormData" :rules="regrules">
	<el-form-item prop="phoneNum">
		<el-input v-model="phoneNum" placeholder="请输入手机号码"></el-input>
	</el-form-item>
	<el-form-item prop="phoneNum">
		<el-input v-model="phoneNum" placeholder="请输入手机号码"></el-input>
		<el-button type="text" @click="getCode" :disabled="codeDisabled">{{codeMsg}}</el-button>
	</el-form-item>
	</el-form>
</template>

data(){
	var validatePhone = (rule,value,callback)=>{
		if(value == ''){
			callback(new Error('请输入手机号'))
		}else{
			if(value !==''){
				var reg = /^1[13456789]\d{9}$/;
				if(!reg.test(value)){
					callback(new Error('手机号输入错误'))
				}else{
					//手机号码输入正确时才可点击获取验证码按钮
					this.codeDisabled = false;
				}
			}
			callback();
		}
			
	}
	return{
		timer:null,
		errorTxt:'',
		countdown:60,
		codeMsg:'获取短信验证码',
		codeDisabled:true,
		phoneNum:'',
		regrules:{
			phoneNum:[
				{validator:validatePhone,trigger:"change"}
			]
		}
	}
},
methodes:{
	getCode(){
		if(this.phoneNum !=='' ){
			this.codeDisabled = true;
			let data = {
				phoneNum:this.phoneNum
			} 
			this.$Api.smscodeRegister(data).then(res=>{
					if(res.code == 200){
						if(!this.timer){
							this.timer = setInterval(()=>{
								if(this.countdown>0&& this.countdown<=60){
									this.countdown == ;
									if(this.countdown !== 0){
										this.codeDisabled = true;
										this.codeMeg = '重新发送('+this.countdown+')';
									}else{
										clearInterval(this.timer);
										this.codeMeg  = "获取短信验证码";
										this.countdown  = 60;
										this.timer = null;
										this.codeDisabled  = false;
									}
								}
							},1000)
						}
					}else{
					this.message({
						message:res.message,
						type:'error'
					})
					this.codeDisabled  = false;
					}
			})
		}
	}
}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值