validator只能传3个参数,(rule, value, cb),如果想传入额外的参数来做校验
那么需要通过在rules上嵌套一层,传入参数,如row,之后在函数中定义validator
就可以直接用到自己需要的参数了,我这边需要的是row,校验表格中的每一行的数据
通过函数来返回rules 格式和平时写的一样 {required: xx, validator:xx, trigger:xx }
<el-form-item
:prop="module"
style="margin-top: 0"
:rules="validatorQty(row)"
>
...
</el-form-item>
validatorQty(row) { // 获取row信息
// 返回的是rules
return [{
required: true,
validator: (rule, value, cb) => {
const select1 = row.c
const select2 = row.m
if (!select1 && !select2) {
cb(new Error('请至少选择其中一项'));
} else {
cb();
}
}, trigger: 'blur'
}]
},