<u-form-item label="身份证号" prop="card" ref="card">
<u-input v-model="form.card" placeholder="请输入身份证号" @click="keyCardShow = true" />
<u-keyboard ref="uKeyboardCard" mode="card" v-model="keyCardShow" @change="valChangeCard" @backspace="backspaceCard" :mask="false">
</u-keyboard>
</u-form-item>
rules: {
card: [{
required: true,
message: '请输入身份证',
trigger: ['blur','change'],
},
{
// 自定义验证函数
validator: (rule, value, callback) => {
// 返回true表示校验通过,返回false表示不通过
return this.$u.test.idCard(value)
},
message: '身份证不正确',
// 触发器可以同时用blur和change
trigger: ['blur','change'],
}
],
}
valChangeCard(val) {
// 将每次按键的值拼接到value变量中,注意+=写法
this.form.card += val;
this.triggerSingleFieldValidate("card")
},
// 退格键被点击
backspaceCard() {
// 删除value的最后一个字符
if (this.form.card.length) this.form.card = this.form.card.substr(0, this.form.card.length - 1);
this.triggerSingleFieldValidate("card")
},
//验证
triggerSingleFieldValidate(refName) {
setTimeout(()=>{
this.$refs[refName].onFieldChange()
},200)
}