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'时,校验证件号码,否则不校验;
时间: 2024-02-10 08:18:14 浏览: 46
你的问题是如何在给定的校验规则中加入证件类型的判断条件。我可以给你一个思路:可以在证件类型改变时,动态地更新证件号码的校验规则。具体来说,可以在证件类型值改变时,调用一个函数,该函数根据新的证件类型值,动态地生成相应的校验规则,并将其赋值给证件号码字段的校验规则。这样就能实现根据不同的证件类型,进行不同的校验规则。具体代码实现可以参考下面的例子:
```
// 定义证件号码的校验规则
const certNoRules = [
{
required: true,
message: '证件号码不能为空'
}
];
// 定义一个函数,用于根据证件类型动态生成相应的校验规则
function generateCertNoRules(certType) {
if (certType === '1') { // 如果证件类型为1,则添加证件号码的校验规则
certNoRules.push({
validator: (rule, value) => {
return new Promise((resolve, reject) => {
const result = verify(value);
if (result) {
resolve();
} else {
reject(new Error('请输入正确的身份证号码'));
}
});
}
});
}
return certNoRules; // 返回生成的校验规则
}
// 定义表单的校验规则
const validateRules = {
certType: [
{
required: true,
message: '证件类型不能为空'
}
],
certNo: generateCertNoRules('1') // 初始证件类型为1时,添加证件号码的校验规则
};
// 监听证件类型字段的值变化事件
certType.on('change', (value) => {
validateRules.certNo = generateCertNoRules(value); // 动态更新证件号码的校验规则
});
```
这段代码中,我们首先定义了证件号码的校验规则 `certNoRules`,然后定义了一个生成证件号码校验规则的函数 `generateCertNoRules`。该函数根据传入的证件类型值,动态地生成相应的校验规则。接下来,我们定义了表单的校验规则 `validateRules`,其中证件号码的校验规则初始时为证件类型为1时的校验规则。最后,我们监听证件类型字段的值变化事件,在事件处理函数中动态地更新证件号码的校验规则。这样,当证件类型为1时,证件号码将会被校验,否则将不会被校验。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)