在vue2中 使用ant design vue组件中的表单 输入框有rules输入规则 点击按钮新增一个输入框 点击一次新增一个输入框 最多增加2个输入框 并且这个输入框有rules输入规则
时间: 2024-09-29 14:12:54 浏览: 74
在 Vue 2 中,结合 Ant Design Vue (ADVue) 组件库,你可以创建一个动态表单,其中包含由 `rules` 规则管理的输入框。以下是一个简化的步骤示例:
1. 安装依赖:首先确保已经安装了 ADVue 和 Element UI(如果还没有),可以通过 npm 或 yarn 安装:
```bash
npm install antd @vue/cli-plugin-element-ui
```
2. 创建组件:创建一个新的 Vue 组件,例如 `DynamicForm.vue`,并初始化数据结构:
```html
<template>
<div>
<a-button type="primary" @click="addInput">新增</a-button>
<div v-for="(item, index) in inputList" :key="index">
<a-form-item :label="labels[index] || '输入框' + (index + 1)">
<a-input v-model="item.value" :rules="item.rules" />
<a-button type="danger" @click="removeInput(index)">删除</a-button>
</a-form-item>
</div>
</div>
</template>
<script>
export default {
data() {
return {
labels: ['姓名', '邮箱'], // 可选标签数组
inputList: [{ value: '', rules: [] }, { value: '', rules: [] }],
maxInputs: 2,
};
},
methods: {
addInput() {
if (this.inputList.length < this.maxInputs) {
this.inputList.push({ value: '', rules: [] });
}
},
removeInput(index) {
this.inputList.splice(index, 1);
},
},
};
</script>
```
在这个例子中,我们初始化了两个空的对象到 `inputList` 数组里,并且每次点击“新增”按钮时,检查当前输入框数量是否小于最大限制(这里是2)。如果是,则添加一个新的输入项。同时,每个输入框都有对应的 `v-model` 和 `rules` 属性。
注意,你需要根据实际需求自定义 `labels` 数组和 `rules` 对象。`rules` 应该是对象数组,每个对象包含验证规则的键值对。例如:
```javascript
rules: [
{ required: true, message: '请输入内容' },
{ email: true, message: '无效的电子邮件地址' },
],
```
阅读全文