方法一:
使用pattern对对数据进行正则校验
优点:不用做清空处理,不符合规则的会有拦截,不能提交表单。
缺点:不能做多重判断,给予不同提示。
<a-form :label-col="{ span: 3 }" :wrapper-col="{ span: 20 }" @submit="handleSubmit" :form="form" layout="vertical" :hideRequiredMark="hideRequiredMark">
<a-form-item label="用电户号:">
<a-input style="height:40px;"
:maxLength="13"
v-decorator="[
'accountNo',
{rules: [{ required: true,pattern: new RegExp(/^\d{13}$/), message: '用电户号必须为13位数字' }]}
]" placeholder="请输入用电户号"/>
</a-form-item>
</a-form>
方法二:
失去焦点时使用this.form.setFields 对多重校验给予相应文字提示 。
优点:可以多重判断给予不同文案提示。
缺点:不符合规则的如果不对输入框的值做清空处理,会绕过判断直接提交错误信息。
<a-form :label-col="{ span: 3 }" :wrapper-col="{ span: 20 }" @submit="handleSubmit" :form="form" layout="vertical" :hideRequiredMark="hideRequiredMark">
<a-form-item label="用电户号:">
<a-input style="height:40px;"
@blur="changeValue"
:maxLength="13"
v-decorator="[
'accountNo',
{rules: [{ required: true, message: '用电户号必须为13位数字' }]}
]" placeholder="请输入用电户号"/>
</a-form-item>
</a-form>
changeValue(e) {
let reg=/^\d{13}$/
if (e.target.value && !reg.test(e.target.value)) {
// 此处field须对应
const arr = [
{
message: "请输入正确的用电户号",
field: "legalIdCard"
}
];
this.form.setFields({
legalIdCard: { value:'', errors: arr }//值清空
});
}
},