HTML部分:
<el-form-item label="手机号:" prop="phone">
<el-input v-model.number="loginForm.phone" >{{loginForm.phone}}</el-input>
<el-button class="validateCode" @click="sendMsg" type="primary" :disabled="isDisabled">{{buttonName}}</el-button>
</el-form-item>
data()部分:
data() {
// 验证手机号
var CheckTel = (rule, value, callback) => {
if (!value) {
callback(new Error('请输入手机号码'));
} else if (!Number.isInteger(value)) {
callback(new Error('手机号码必须是数字'));
} else if (value.toString().length != 11) {
callback(new Error('手机号码必须是11位'));
} else {
callback();
}
};
return {
disabled: true,
buttonName: "发送短信",
isDisabled: false,
time: 10,
loginForm: {
phone: '',
validateCode: '',
},
rules: {
phone: [{
required: true,
validator: CheckTel,
trigger: 'blur'
}],
validateCode: [{
required: true,
message: '验证码不能为空',
trigger: 'blur'
}],
},
}
},
methods部分:
sendMsg() {
// alert(this.rules.phone);
this.$refs.loginForm.validateField('phone',valid=>{
if (valid!=='') {
this.rules.phone;
}else {
let me = this;
me.isDisabled = true;
let interval = window.setInterval(function () {
me.buttonName = me.time + '后重新发送';
--me.time;
if (me.time < 0) {
me.buttonName = "重新发送";
me.time = 10;
me.isDisabled = false;
window.clearInterval(interval);
}
}, 1000);
}
});
}