先上代码:
1、先取出针对手机号的验证
2、this.$refs["elForm"].validate((valid) => {
if (valid) {
this.formData.level = "";
putObj(this.formData).then((response) => {
this.$message.success("修改成功");
this.getList(this.page);
this.dialogcheck = false;
}).catch((err) => {
this.$message.error(err);
});
} else {
return false;
}
});
1、直接清除某个字段的验证
this.$refs["elForm"].clearValidate("phone");
但是我的代码还要对除了这个“phone”外的,其他表单,全部验证。结果发现,无效。猜想可能是因为双向绑定的问题。
2、用另一种方式清除
this.$refs.elForm.fields.map(i =>{ if(i.prop ==='phone'){ i.clearValidate() } })
依然不起作用,具体为什么,没有深入研究
3、采用一个个字段验证的方式,排除当前手机号的验证
this.$refs.examine.validateField("barCode");
this.rules.barCode= [{ required: true, message: '请上传图片' }]
this.$refs['elForm'].validateField('a', (err) => { if (err) { isPass = false } })
很显然,不适合需求,也太麻烦
4、使用单独字段的形式
this.rules.phone[0].validator = (rule, value, callback) => {
callback()
}
phone字段,很明显是input框,但依然要phone[0],因为rules是个数组对象。