上面的图片是ui图,这是一个编辑弹窗里面的功能,用的是vue2+element ui
在入参字段下面的表单,点击右侧的加号就能添加一个子级,总共能有三级。点击减号能删除当前的子级。
这七个表单的布局,是应该写七个form-item,还是在一个form-item下面写七个input,哪个好一点呢。
请问这样的添加表单的子级应该怎么实现呢? 求指导 求指导
上面的图片是ui图,这是一个编辑弹窗里面的功能,用的是vue2+element ui
在入参字段下面的表单,点击右侧的加号就能添加一个子级,总共能有三级。点击减号能删除当前的子级。
这七个表单的布局,是应该写七个form-item,还是在一个form-item下面写七个input,哪个好一点呢。
请问这样的添加表单的子级应该怎么实现呢? 求指导 求指导
首先,对于这个问题,我们需要使用Vue.js的动态组件功能。每个表单项应该是一个动态组件,这样我们就可以根据需要添加或删除它们。
在Vue 2中,你可以使用v-for
指令来渲染一个动态的组件列表。对于每一个组件,你可以使用一个v-if
来控制是否显示这个组件。
这是一个基本的示例,展示了如何创建一个可重复的表单项:
<template>
<el-form :model="form" label-width="120px">
<el-form-item label="项目名称" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item v-for="(item, index) in form.items" :key="index" label="项目内容" prop="content">
<el-input v-model="item.content"></el-input>
<el-button @click="removeItem(index)">删除</el-button>
</el-form-item>
<el-button type="primary" @click="addItem">添加项目</el-button>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
items: [{ content: '' }] // 初始只有一个项目
}
};
},
methods: {
addItem() {
this.form.items.push({ content: '' }); // 添加一个新的项目
},
removeItem(index) {
this.form.items.splice(index, 1); // 删除指定的项目
}
}
};
</script>
在这个示例中,我们有一个主表单项(name
),然后我们使用v-for
来渲染一个动态的表单项列表。每个表单项都有一个删除按钮和一个输入框。点击"添加项目"按钮会调用addItem
方法,这个方法会将一个新的空项目添加到form.items
数组中。点击删除按钮会调用removeItem
方法,这个方法会从form.items
数组中删除指定的项目。
10 回答11.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
组件
使用