帮我写一个uview可以动态添加from表单并且是多表单有校验规则的
时间: 2023-02-19 12:15:08 浏览: 385
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
好的,以下是一个使用 uView UI 框架写的 Vue 组件,实现了动态添加 from 表单,并且每个表单都有校验规则。
```
<template>
<div>
<u-form ref="form" :model="formData" :rules="rules">
<u-form-item
v-for="(item, index) in formData"
:key="index"
:label="`表单 ${index + 1}`"
prop="index"
>
<u-input v-model="item.value" />
</u-form-item>
<u-button @click="addFormItem">添加表单</u-button>
<u-button @click="submit">提交</u-button>
</u-form>
</div>
</template>
<script>
export default {
data() {
return {
formData: [
{ value: "" }
],
rules: {
0: [
{ required: true, message: "请输入表单内容", trigger: "blur" }
]
}
};
},
methods: {
addFormItem() {
this.formData.push({ value: "" });
const index = this.formData.length - 1;
this.$set(this.rules, index, [
{ required: true, message: "请输入表单内容", trigger: "blur" }
]);
},
async submit() {
try {
await this.$refs.form.validate();
// 校验通过,在此处可以进行提交操作
} catch (error) {
// 校验失败
}
}
}
};
</script>
```
说明:
- `u-form` 组件用于创建表单,它接收 `model` 属性用于绑定表单数据,`rules` 属性用于绑定表单校验规则。
- `u-form-item` 组件是一个表单项,它接收 `label` 属性设置表单项的标签文字,`prop` 属性绑定表单数据的字段名。
- 通
阅读全文