vue + element-ui 动态增减表单的添加、删除和修改问题
<template>
<el-form ref="dynamicForm" :model="form" :rules="rules">
<el-row v-for="(item, index) in form.items" :key="index">
<el-col :span="16">
<el-form-item :label="'Item ' + (index + 1)" :prop="'items.' + index + '.value'">
<el-input v-model="item.value" @change="handleItemChange(index, item.value)"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-button @click="removeItem(index)">删除</el-button>
</el-col>
</el-row>
<el-row>
<el-col :span="4" :offset="16">
<el-button @click="addItem">添加项目</el-button>
</el-col>
</el-row>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
items: [
{ value: '' }
]
},
rules: {
items: [
{ required: true, message: '请输入项目值', trigger: 'blur' }
]
}
};
},
methods: {
addItem() {
this.form.items.push({ value: '' });
},
removeItem(index) {
this.form.items.splice(index, 1);
},
handleItemChange(index, value) {
// 处理动态表单项的变更逻辑
console.log(`Item ${index} changed to ${value}`);
}
}
};
</script>
这个代码示例展示了如何在Vue中使用Element UI库创建一个可以动态增加、删除和修改表单项的表单。代码使用了v-for
来循环渲染表单项,并提供了添加和删除表单项的方法。同时,它还演示了如何使用el-form
和el-form-item
组件来构建表单,并通过el-button
来触发添加和删除操作。
评论已关闭