在ElementUI中遍历生成表单,可以使用v-for
指令来遍历数据,并为每个数据项创建一个表单元素。以下是一个简单的例子:
<template>
<el-form ref="form" :model="form" label-width="80px">
<el-form-item
v-for="(item, index) in formItems"
:key="index"
:label="item.label"
:prop="item.prop"
>
<el-input v-model="form[item.prop]" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {},
formItems: [
{ label: '姓名', prop: 'name' },
{ label: '年龄', prop: 'age' },
{ label: '邮箱', prop: 'email' }
]
};
},
methods: {
submitForm() {
this.$refs.form.validate((valid) => {
if (valid) {
alert('提交成功!');
} else {
console.log('表单验证失败!');
return false;
}
});
}
}
};
</script>
在这个例子中,formItems
数组定义了表单项的列表,每个表单项都有一个标签和属性名。v-for
指令用于遍历这个数组,并为每个项生成一个el-form-item
组件。el-input
组件绑定到form[item.prop]
,这样可以动态生成表单数据模型。
提交表单时,调用submitForm
方法,它会触发表单的验证,如果验证通过,会弹出提示框显示“提交成功”,如果验证失败,则在控制台输出“表单验证失败”的信息。
这个例子展示了如何使用ElementUI的表单组件动态生成表单项,并在提交时进行验证。