使用elementUI来校验联系人姓名和联系人电话,我们校验规则是要么两个全部不填,要么填了一个另外一个也要填,这种校验如何写
时间: 2024-03-27 10:37:31 浏览: 54
您可以使用elementUI的自定义校验规则来实现此功能。以下是一个示例代码:
```javascript
<template>
<el-form :model="form" :rules="rules">
<el-form-item label="联系人姓名" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="联系人电话" prop="phone">
<el-input v-model="form.phone"></el-input>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
phone: ''
},
rules: {
name: [
{ required: true, message: '联系人姓名不能为空', trigger: 'blur' }
],
phone: [
{ required: true, message: '联系人电话不能为空', trigger: 'blur' },
{ validator: this.validatePhone, trigger: 'blur' }
]
}
}
},
methods: {
validatePhone(rule, value, callback) {
if (!value && !this.form.name) {
callback(new Error('联系人姓名和联系人电话不能同时为空'));
} else if (!value && this.form.name) {
callback(new Error('联系人电话不能为空'));
} else if (value && !this.form.name) {
callback(new Error('联系人姓名不能为空'));
} else {
callback();
}
}
}
}
</script>
```
在上面的代码中,我们定义了一个表单,其中包含两个输入框:联系人姓名和联系人电话。我们在rules中定义了两个校验规则,分别对应姓名和电话。对于姓名,我们只需要规定其为必填项即可。对于电话,我们使用了自定义校验规则`validatePhone`来实现要么两个全部不填,要么填了一个另外一个也要填的功能。在`validatePhone`方法中,我们通过判断姓名和电话的值来实现上述功能,并通过`callback`函数返回校验结果。最后,在输入框中添加`prop`属性来和rules中定义的规则进行关联。
阅读全文