validateRules: { certno: [ { required: true, message: '证件号码不能为空' }, { validator: (rule, value) => { return new Promise((resolve, reject) => { const result = verify(value); if (result) { resolve() } else { reject(new Error('请输入正确的身份证号码')) } }) } } ] }; 证件类型字段为certType,加入判断条件,当证件类型为'1'时,校验证件号码,否则不校验;目前使用的是vue版本号为2.9.1-beta.5
时间: 2024-03-29 18:35:06 浏览: 94
可以在 `validateRules` 对象中的 `certno` 数组里添加一个条件判断,通过 `this.form.certType` 来获取当前证件类型,判断是否为 '1',如果是 '1',则添加证件号码校验规则,否则不添加。修改后的代码如下:
```javascript
validateRules: {
certno: [
{ required: true, message: '证件号码不能为空' },
this.form.certType === '1' ? {
validator: (rule, value) => {
return new Promise((resolve, reject) => {
const result = verify(value);
if (result) {
resolve();
} else {
reject(new Error('请输入正确的身份证号码'));
}
});
}
} : null
].filter(rule => rule !== null)
}
```
在上面的代码中,使用了三元运算符来判断当前证件类型是否为 '1',如果是,则添加证件号码校验规则,否则添加 `null`,最后使用 `filter` 方法过滤掉 `null`,以保证校验规则数组中不会包含 `null` 元素。
需要注意的是,当使用三元运算符时,必须添加一个 `null` 元素,以保证条件不满足时规则数组中有一个元素,否则在 `filter` 过滤时会出现数组越界的问题。
阅读全文