Vue 按键生成多个表单

news/2025/1/8 15:20:02/

本文通过 vue+ele,通过循环ref的方法生成多个表单,代码如下:

javascript"><template><div><el-button @click="addText" style="margin:  15px 0; ">添加字段</el-button><div v-for="item, index in dataList"><el-button @click="deleteText" type="danger" v-if="index == dataList.length - 1"style="margin-bottom: 15px;">删除字段</el-button><el-form :ref="`form${index}`" :model="item" :rules="rules" :key="index" label-width="80px"><el-form-item label="中文名称" prop="chineseName"><el-input v-model="item.chineseName"></el-input></el-form-item><el-form-item label="英文名称" prop="englishName"><el-input v-model="item.englishName"></el-input></el-form-item></el-form></div><el-button v-if="dataList.length != 0" @click="submitForms" style="margin:  15px 0; ">提交</el-button></div>
</template>
<script>export default {name: 'addForm',components: {},data() {return {dataList: [],rules: {chineseName: [{ required: true, message: "请输入英文名称", trigger: "blur" },{ pattern: /^[\u4e00-\u9fa5]+$/, message: "只能输入中文", trigger: "blur" }],englishName: [{ required: true, message: "请输入英文名称", trigger: "blur" },{ pattern: /^[a-zA-Z]+$/, message: "只能输入英文", trigger: "blur" }],},}},props: {},created() {},watch: {},computed: {},mounted() {},methods: {addText() {this.dataList.push({ chineseName: '', englishName: '' });},deleteText() {this.dataList.pop();},submitForms() {const formDataArray = [];let valid = true;this.dataList.forEach((item, index) => {this.$refs[`form${index}`][0].validate((validForm) => {if (!validForm) {valid = false;}});formDataArray.push(this.$refs[`form${index}`][0].model);});if (valid) {console.log(formDataArray);// 在这里处理提交的表单数据} else {console.log('表单验证失败');}}},beforeDestroy() {}
}
</script>
<style scoped></style>

效果如图:

完整代码已经上传github:https://github.com/majinihao123/vue-Component

有需要的自取,麻烦给git一个星星!!!


http://www.ppmy.cn/news/1560838.html

相关文章

CSP初赛知识学习计划(第一天)

计算机知识全解析 一、计算机的发展历程 计算机的发展堪称一部波澜壮阔的科技史诗&#xff0c;其源头可追溯至古老的计算工具。早期&#xff0c;为了满足人类在天文、历法计算以及商业贸易中对数据处理的需求&#xff0c;算盘、算筹等手动计算器械应运而生&#xff0c;它们依…

滑动窗口。

1456 定长子串中元音的最大数目 采用滑动窗口。每次移动一个位置&#xff0c;判断当前窗口内的子串内目标元素的个数&#xff0c;若比之前更大就更新结果。 如何判断是否更新结果&#xff1f;也即&#xff0c;如何判断当前窗口内所含目标元素个数&#xff0c;是否为遍历到这个…

FastAPI 响应模型与自定义响应

FastAPI 响应模型与自定义响应 &#x1f4da; 目录 &#x1f3a8; 自定义响应类型概述&#x1f5c2;️ 文件上传与下载详解&#x1f36a; 自定义响应头与 Cookie 配置 &#x1f3a8; 1. 自定义响应类型概述 在 FastAPI 中&#xff0c;自定义响应类型是开发者实现更丰富输出…

将机器学习预测模型融入AI agent的尝试(一)

将机器学习临床预测模型融入AI agent的尝试&#xff08;一&#xff09; 我主要是使用机器学习制作临床预测模型和相关的应用&#xff0c;最近考虑的事情是自己之前的的工作能不能和AI agent进行融合&#xff0c;将AI 对自然语言理解能力和预测模型的预测能力结合在一起&#x…

PHP语言的计算机基础

计算机基础与PHP语言入门 在当今信息技术高速发展的时代&#xff0c;计算机已经成为我们日常生活中不可或缺的重要工具。学习计算机基础知识&#xff0c;不仅能增强我们对信息技术的理解&#xff0c;还会为我们后续学习编程语言打下良好的基础。本文将以PHP语言为切入点&#…

2025元旦源码免费送

我们常常在当下感到时间慢&#xff0c;觉得未来遥远&#xff0c;但一旦回头看&#xff0c;时间已经悄然流逝。对于未来&#xff0c;尽管如此&#xff0c;也应该保持一种从容的态度&#xff0c;相信未来仍有许多可能性等待着我们。 免费获取源码。 更多内容敬请期待。如有需要可…

新手学习yolov8目标检测小记2--对比实验中经典模型库MMDetection使用方法(使用自己的数据集训练,并转换为yolo格式评价指标)

一、按照步骤环境配置 pip install timm1.0.7 thop efficientnet_pytorch0.7.1 einops grad-cam1.4.8 dill0.3.6 albumentations1.4.11 pytorch_wavelets1.3.0 tidecv PyWavelets -i https://pypi.tuna.tsinghua.edu.cn/simple pip install -U openmim -i https://pypi.tuna.t…

详细讲一下Prettier对我们日常开发的作用,以及详细用法

1.什么是 Prettier&#xff1f; // Prettier 是代码格式化工具&#xff0c;它可以自动调整代码格式 // 比如把这样的代码&#xff1a; function foo ( a, b ){ return ab; }// 自动格式化成这样&#xff1a; function foo(a, b) {return a b; } 2.基础配置详解 {// 控制…