怎样给el-form-item中嵌套的el-input中v-model绑定的其他变量实现表单验证
时间: 2024-03-28 14:12:11 浏览: 209
Vue循环中多个input绑定指定v-model实例
你可以通过自定义验证规则来实现给el-input绑定的v-model绑定的其他变量实现表单验证。具体步骤如下:
1. 在el-form中设置 :model属性,绑定一个对象作为表单的数据模型。
2. 在el-form-item中嵌套el-input,并给el-input绑定v-model,将其绑定到表单数据模型中对应的属性上。
3. 在el-form-item中设置 :rules属性,绑定一个数组,用于定义验证规则。
4. 在数组中定义一个自定义验证规则,该规则接收两个参数:value和callback。value表示el-input绑定的v-model的值,callback是验证完成后的回调函数,需要在这个函数中传递一个布尔值,表示是否验证通过。
示例代码如下:
```html
<el-form :model="formData" ref="form" :rules="rules">
<el-form-item label="姓名" prop="name">
<el-input v-model="formData.name"></el-input>
</el-form-item>
<el-form-item label="年龄" prop="age">
<el-input v-model="formData.age"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
```
```javascript
data() {
return {
formData: {
name: '',
age: ''
},
rules: {
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' },
{ validator: this.validateName, trigger: 'blur' } // 自定义规则
],
age: [
{ required: true, message: '请输入年龄', trigger: 'blur' },
{ validator: this.validateAge, trigger: 'blur' } // 自定义规则
]
}
};
},
methods: {
validateName(rule, value, callback) {
// 验证规则
if (value && value.length >= 2 && value.length <= 5) {
callback();
} else {
callback(new Error('姓名长度应该在2-5个字符之间'));
}
},
validateAge(rule, value, callback) {
// 验证规则
if (value && value >= 18 && value <= 60) {
callback();
} else {
callback(new Error('年龄应该在18-60之间'));
}
},
submitForm() {
// 提交表单
this.$refs.form.validate(valid => {
if (valid) {
// 表单验证通过
// TODO: 提交表单数据到后端
} else {
// 表单验证失败
return false;
}
});
}
}
```
在这个示例中,我们给el-input绑定的v-model绑定到了formData对象的name和age属性上,并且通过自定义的验证规则来验证输入的内容。在表单提交时,我们调用validate方法来验证整个表单的数据模型,如果验证通过,就可以将formData对象提交到后端进行处理。
阅读全文