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 07:35:07 浏览: 44
}&gender=${gender}`)
.then(response => {
this.$message.success('保存成功');
this.fetchData();
this.dialogVisible = false;
})
.catch(error => {
console.log(error);
this.$message.error('保存失败');
});
可以在 `validateRules` 对象中的 `certno` 数组里添加一个条件判断,通过 `this.form.certType` },
},
};
</script>
```
这是一个使用了Element UI组件库和Axios库的Vue组件, 来获取当前证件类型,判断是否为 '1',如果是 '1',则添加证件号码校验规包含了一个表格和一个对话框。在表格中,每一行都有一个“删除”按钮,点击则,否则不添加。修改后的代码如下:
```javascript
validateRules: {
certno: [
{
按钮会触发`handleDelete`方法。在对话框中,可以编辑学生的信息,并点击“确定”按钮保存修改。
相关问题
validateRules: { certno: [ { required: true, message: '证件号码不能为空' } ], name: [ { required: true, message: '姓名不可为空' } ], empName: [ { required: true, message: '单位名称不可为空' } ], empCode: [ { required: true, message: '统一信用代码不能为空' } ], reason: [ { required: true, message: '失信原因不能为空' } ] } 中如何加入证件号码校验规则?
在`validateRules`中加入证件号码校验规则,可以在`certno`数组中新增一个对象,如下所示:
```javascript
validateRules: {
certno: [
{
required: true,
message: '证件号码不能为空'
},
{
validator: (rule, value, callback) => {
const reg = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/
if (!reg.test(value)) {
callback(new Error('请输入正确的身份证号码'))
} else {
callback()
}
},
message: '请输入正确的身份证号码'
}
],
name: [
{
required: true,
message: '姓名不可为空'
}
],
empName: [
{
required: true,
message: '单位名称不可为空'
}
],
empCode: [
{
required: true,
message: '统一信用代码不能为空'
}
],
reason: [
{
required: true,
message: '失信原因不能为空'
}
]
}
```
在上面的代码中,我们在`certno`数组中新增了一个对象,其中`validator`属性是一个函数,用于自定义校验规则。在该函数中,我们使用正则表达式验证传入的证件号码是否符合规则,如果不符合规则,通过`callback`函数返回一个`Error`对象,提示用户输入正确的身份证号码。如果输入的身份证号码符合规则,则直接调用`callback`函数即可。最后,将这个新对象的`message`属性设置为相应的提示信息即可。
validateRules: { certno: [ { required: true, message: '证件号码不能为空' }, { validator: (rule, value, callback) => { const result = verify(value) if (result.status === 0) { callback() } else { callback(new Error(result.msg)) } }, message: '请输入正确的身份证号码' } ], name: [ { required: true, message: '姓名不可为空' } ], empName: [ { required: true, message: '单位名称不可为空' } ], empCode: [ { required: true, message: '统一信用代码不能为空' } ], reason: [ { required: true, message: '失信原因不能为空' } ] } 改用 Promise 写
好的,您可以将 `validator` 中的 `callback` 改为返回 `Promise`,如下所示:
```javascript
validateRules: {
certno: [
{ required: true, message: '证件号码不能为空' },
{
validator: (rule, value) => {
return new Promise((resolve, reject) => {
const result = verify(value);
if (result.status === 0) {
resolve();
} else {
reject(new Error(result.msg));
}
});
},
message: '请输入正确的身份证号码',
},
],
name: [
{
required: true,
message: '姓名不可为空',
},
],
empName: [
{
required: true,
message: '单位名称不可为空',
},
],
empCode: [
{
required: true,
message: '统一信用代码不能为空',
},
],
reason: [
{
required: true,
message: '失信原因不能为空',
},
],
};
```
这里使用了 `Promise` 对象封装异步验证逻辑,`resolve()` 表示验证通过,`reject()` 表示验证失败并返回错误信息。这样,您就可以像下面这样使用 `async/await` 或者 `.then()` 处理验证结果:
```javascript
// 使用 async/await 处理表单验证
async function handleSubmit() {
try {
await form.validateFields();
// 表单验证通过
} catch (error) {
// 表单验证失败
}
}
// 使用 .then() 处理表单验证
form
.validateFields()
.then(() => {
// 表单验证通过
})
.catch((error) => {
// 表单验证失败
});
```
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![.zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.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)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)