element表单validateField验证部分字段
elementui表单校验指定字段时,每个字段的结果都会执行一次回调,如下:
const fields = ['name', 'phoneNum', 'idNum']
this.$refs.form.validate(fields).then(valid => {
console.log(valid)
})
1
2
3
4
2
3
4

这里会打印每个字段的校验结果,但通常我们是要得到一个结果再进行后续处理,所以这里需要对调用验证的过程进行处理。可以看到validate函数返回的是Promise,那么我们可以使用Promise.allapi来来对三个字段结果进行统一处理,如下:
function test {
const fields = ['name', 'phoneNum', 'idNum']
// 利用Promise.all方法,校验部分字段
const res = Promise.all(fields.map(field => {
return new Promise((resolve, rject) => {
this.$refs['form'].validateField(field, (errMsg) => {
resolve(errMsg)
})
})
})).then(errMsgs => {
console.log('Promise.all', errMsgs)
if (errMsgs.every(msg => !msg)) {
console.log('通过')
}
})
if (res.every(r => r)) {
// doSomething
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
上次更新: 2025/09/05, 8:09:00