vue3 el-form动态生成表单
时间: 2023-12-09 18:06:46 浏览: 172
vue+element创建动态的form表单及动态生成表格的行和列
5星 · 资源好评率100%
在Vue3中,可以使用`v-for`指令动态生成表单,以下是一个示例:
```html
<template>
<el-form :model="form" :rules="rules" ref="form" label-width="80px">
<el-form-item v-for="(item, index) in formItems" :key="index" :label="item.label" :prop="item.prop">
<el-input v-if="item.type === 'input'" v-model="form[item.prop]"></el-input>
<el-select v-if="item.type === 'select'" v-model="form[item.prop]">
<el-option v-for="(option, optionIndex) in item.options" :key="optionIndex" :label="option.label" :value="option.value"></el-option>
</el-select>
<!-- 其他表单元素 -->
</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: {
// 表单数据
},
rules: {
// 表单验证规则
},
formItems: [
{ label: '姓名', prop: 'name', type: 'input' },
{ label: '年龄', prop: 'age', type: 'input' },
{ label: '性别', prop: 'gender', type: 'select', options: [{ label: '男', value: 'male' }, { label: '女', value: 'female' }] },
// 其他表单项
]
}
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
// 表单验证通过,提交数据
} else {
// 表单验证失败
return false
}
})
}
}
}
</script>
```
在上面的示例中,`formItems`数组定义了表单项的属性,通过在`v-for`指令中遍历`formItems`数组,动态生成表单元素。`v-if`指令用于根据表单项的类型显示不同的表单元素。需要注意的是,每个表单元素的`v-model`指令应该绑定到`form`对象的相应属性上,这样可以方便地获取表单数据。
阅读全文