el-form表单结合el-row循环数组,动态添加prop,最后进行表单验证
时间: 2024-10-24 20:01:20 浏览: 30
在Element UI中,`el-form`是一个用于构建表单的组件,而`el-row`通常用于布局,当需要处理数据列表并且动态生成表单元素时,可以结合Vue的动态绑定(v-bind)和数组操作。
首先,假设你有一个数组`formItems`,它包含了每个表单项的配置,包括`label`、`prop`等属性:
```html
<template>
<div>
<el-form :model="formData" ref="formRef">
<el-row v-for="(item, index) in formItems" :key="index">
<el-col :span="8">
<el-form-item label="{{ item.label }}">
<el-input v-model="formData[item.prop]"></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 添加更多表单元素... -->
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
formData: {}, // 初始化空的对象保存表单值
formItems: [
{ prop: 'name', label: '姓名' },
{ prop: 'email', label: '邮箱' },
{/* 更多配置 */}
]
};
},
methods: {
submitForm() {
this.$refs.formRef.validate((valid) => {
if (valid) {
console.log('表单提交成功:', this.formData);
} else {
console.log('表单验证失败');
}
});
}
}
};
</script>
```
在这个例子中,`v-model`会动态地绑定到`formData`对象上对应的`prop`键,使得每次添加新的表单项,都会自动关联到`formData`里。当你调用`submitForm`方法时,通过`el-form`的内置验证功能`validate`,可以对整个表单内容进行校验。
阅读全文