1. el-form 校验多个指定字段,不校验整个表单
const requiredFields = ['sname', 'phone']
let count = 0
requiredFields.forEach((item) => {
this.$refs.addForm.validateField(item, (errorMsg) => {
if (errorMsg) {
return
}
count++
})
})
const flag = count === requiredFields.length
if (!flag) {
this.$message.error('姓名、手机号不能为空!')
return
}
this.saveApi()
第二种
const errArray = []
await this.$refs.ruleFormRef.validateField(['url', 'datepicker'], (errMsg, fieldConfig) => {
if (errMsg) {
errArray.push(fieldConfig)
}
})
if (errArray.length > 0) {
} else {
Modal.alert('日期和url通过校验')
}
2. 同时校验多个表单
validForm(refName) {
return new Promise((resolve, reject) => {
if (!this.$refs[refName]) {
resolve()
} else {
this.$refs[refName].validate((valid) => {
console.log(refName, valid)
!valid ? reject() : resolve()
})
}
})
},
saveForm() {
Promise.all([ this.validForm('addForm'), this.validForm('editForm') ])
.then(res => {
try {
this.saveApi()
} catch (error) {
this.$message.error('出错了!')
}
}).catch(() => {
this.$message.error('请完善表单!')
})
}