element form 表单数组
时间: 2024-10-29 20:09:09 浏览: 19
Element UI 的 Form 组件支持处理数组级别的验证。以您给出的示例来看,它允许你在表单中绑定数组,并对每个数组元素进行独立的验证。下面是如何实现的:
1. **HTML 结构**[^1]:
```html
<template>
<el-form ref="form" :model="formData">
<el-row v-for="(item, index) in formData.items" :key="index">
<el-col :span="40%">
<el-form-item label="Id" :prop="'items.' + index + '.id'" v-if="item.id">
<!-- 这里填写输入框或其他组件 -->
</el-form-item>
</el-col>
<el-col :span="20%" class="before-close">
<el-button @click="cancel(index)">取消</el-button>
</el-col>
</el-row>
</el-form>
</template>
<script>
export default {
data() {
return {
formData: {
items: [{ id: '' }] // 示例数组
},
visable: false,
};
},
methods: {
cancel(index) {
this.formData.items.splice(index, 1); // 取消操作时从数组中移除该条目
}
}
};
</script>
```
2. **验证设置**[^2]:
```html
<el-form-item v-for="(contentItem, index) in ruleForm.content" :key="index" :label="`内容${index + 1}`" :prop="'ruleForm.content.' + index">
<el-input v-model="contentItem" :rules="[{ required: true, message: '必填项不能为空', trigger: 'blur' }]"></el-input>
</el-form-item>
```
在这个例子中,`ruleForm.content` 是一个数组,用于存储每个元素的验证规则。`:prop` 属性用来关联表单字段到数组的特定位置,这样每次编辑数组元素时都会触发对应的验证。
阅读全文