在做表单提交时,经常会遇到,只需要校验部分必填项的操作,可以通过下面的方式来实现。
方法一:通过Promise.all的方法。
// 定义需要校验的的表单数组
let validateArr = ["name", "region", "date"];
Promise.all(
validateArr.map((field) => {
return new Promise((resolve) => {
this.$refs[formName].validateField(field, (errorMsg) => {
resolve(errorMsg);
});
});
})
).then((errorMessage) => {
let valid = errorMessage.every((item) => {
return item == "";
});
if (valid) {
// 校验通过后的操作
alert("校验通过");
} else {
console.log("校验失败");
return false;
}
});
方法二: elementui中form表单的validateField方法
// validateField方法第一个参数可以为Array或者String,定义需要校验的字段
this.$refs[formName].validateField(["resource", "desc"], (valid) => {
if (!valid) {
// 校验通过后的操作
alert("校验通过");
} else {
console.log("校验失败");
return false;
}
});