vue element在遍历中如何使用表单校验
时间: 2023-05-29 19:06:11 浏览: 267
在使用Vue Element进行列表渲染时,可以使用v-for指令遍历每个表单项,并给每个表单项绑定校验规则。具体步骤如下:
1. 在表单项中添加规则属性
在每个表单项中添加一个规则属性,用于存放该项的校验规则:
```
<el-form :model="form" :rules="rules" ref="form">
<el-form-item
v-for="(item, index) in form.items"
:key="index"
:label="item.label"
:prop="'items.' + index + '.value'"
>
<el-input v-model="item.value"></el-input>
</el-form-item>
</el-form>
```
2. 定义校验规则
在Vue实例中定义校验规则,可以使用Element提供的校验规则,也可以自定义校验规则。示例代码如下:
```
data() {
return {
form: {
items: [
{ label: '姓名', value: '' },
{ label: '年龄', value: '' }
]
},
rules: {
items: [
{ validator: this.validateName, trigger: 'blur' },
{ validator: this.validateAge, trigger: 'blur' },
]
}
}
},
methods: {
validateName(rule, value, callback) {
if (!value) {
callback(new Error('请输入姓名'));
} else {
callback();
}
},
validateAge(rule, value, callback) {
if (!value) {
callback(new Error('请输入年龄'));
} else if (!/^\d+$/.test(value)) {
callback(new Error('年龄必须为数字'));
} else if (value < 18 || value > 60) {
callback(new Error('年龄必须在18-60之间'));
} else {
callback();
}
}
}
```
3. 监听提交事件
在提交按钮的click事件中,调用表单的validate方法进行校验,如果校验通过,执行提交操作:
```
<el-button type="primary" @click="submitForm">提交</el-button>
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
// 校验通过,执行提交操作
} else {
// 校验不通过,弹出错误提示
}
});
}
}
```
以上步骤就是在Vue Element中遍历表单并使用表单校验的基本操作。
阅读全文