vue使用element发送手机验证码倒计时

发送验证码倒计时

html

          <el-form class="form"   :model="form" labeal-position="left">	
				<el-form-item label="姓名">
						<el-input v-model="form.Name" placeholder="请输入姓名"></el-input>
					</el-form-item>
					<el-form-item label="电话">
						<el-input v-model="form.Phone" placeholder="请输入电话">
						</el-input>
					</el-form-item>
					<el-form-item label="验证码">
						<el-input v-model="form.Code" placeholder="请输入验证码" @blur="blurcheck">
							<el-button slot="suffix" size="mini" style="border: none;" @click="sendcode"
								:disabled="!show">
								获取验证码
								<span v-show="!show" class="count">({{count}}s)</span>
							</el-button>
						</el-input>
					</el-form-item>
		</el-form>

js

export default{
const TIME_COUNT = 30;  //倒计时时间
	data(){
		return{
		timer:null,//计时器
		code:"",//验证码
		count:"",//倒计时
		show:true,//控制按钮
		form:{
			Name:"",
			Phone:"",
			Code:""
		}
		
	},
	methods:{
	   //获得六位数验证码
		generatedCode() {
			const random = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
			let code = ''
			for (let i = 0; i < 6; i++) {
				let index = Math.floor(Math.random() * 10)
				code += random[index]
			}
			console.log(code)
			this.code = code
			return code

		},
		//发送验证码
		sendcode() {			
			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)
			}
			//这里写请求
			axios.post(url参数之类的).then(res=>{
			
			})
		},
		//在输入完成后可以判断一下
		blurcheck() {
			if (this.form.Code.length < 6 ) {
				return false
			} else {
				if (this.code != this.form.Code &&  this.form.Code!= '') {
					this.$message.error("验证码错误")
					return false
				} 
			}
		},
	}
}

效果在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值