Vue3、Element Plus使用v-for循环el-form表单进行校验

在开发中遇到了这样一个需求

有一个form是通过v-for生成出来的,并且数量不确定,每个表单中的字段都需要做校验,就将自己的解决方法记录了下来。

在这里插入图片描述

在这里插入图片描述

完整代码如下

<template><div class="for-form"><el-button type="primary" @click="addHandle">新 增</el-button><div class="form-box"><div class="form-item" v-for="(item, index) in formList" :key="index"><el-form :model="item" :rules="rules" label-width="auto" style="max-width: 300px" label-position="top":ref="($event) => handle($event, index)"><el-form-item label="名称" prop="name"><el-input v-model="item.name" placeholder="请输入名称" /></el-form-item><el-form-item label="手机号" prop="phone"><el-input v-model="item.phone" placeholder="请输入手机号" /></el-form-item><el-form-item label="性别" prop="sex"><el-radio-group v-model="item.sex"><el-radio :value="1" size="small"></el-radio><el-radio :value="2" size="small"></el-radio></el-radio-group></el-form-item><el-form-item label="爱好" prop="hobby" v-if="item.sex == 2"><el-input v-model="item.hobby" placeholder="请输入爱好" /></el-form-item></el-form></div></div><el-button type="primary" @click="saveHandle">保 存</el-button></div>
</template><script setup lang="ts">
import { reactive, toRefs } from 'vue'const state = reactive({form: {} as any,formList: [] as any,rules: {name: [{ required: true, message: 'Please input Activity name', trigger: 'blur' },],},formRefs: [] as any
})const { formList, rules } = toRefs(state)function addHandle() {state.formList.push({name: "",phone: "",sex: 1,hobby: "",})
}function handle(e: any, index: any) {// 保存下每个refstate.formRefs[index] = e
}async function saveHandle() {let isSubmit: boolean[] = []// 循环上面记录下来的ref对每个进行校验for (const el of state.formRefs) {await el.validate((valid: any) => {// 每个 ref 校验成功或者失败都以布尔值存储下来if (valid) {isSubmit.push(true)} else {isSubmit.push(false)}})}// 只有当 isSubmit 存的值全是 true 时表示每个表单都校验成功了// 然后就可以提交了let has = isSubmit.every(i => i == true)if (has) {console.log("可以提交")}console.log(state.formRefs)console.log(isSubmit)
}</script><style scoped lang="scss">
.form-box {display: flex;align-items: flex-start;.form-item {margin-right: 20px;}
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不容小觑的“白纸黑字”:银行重空凭证的风险与防控

一、定义与重要性 定义&#xff1a; 银行重空凭证&#xff0c;也称为重要空白凭证&#xff0c;是银行专业术语&#xff0c;指银行印制的无面额、经银行或单位填写金额并签章后&#xff0c;即具有支取款项效力的空白凭证。 重要性&#xff1a; 它是银行资金支付的重要工具&a…

秋招突击——6/16——复习{(单调队列优化DP)——最大子序和,背包模型——宠物小精灵收服问题}——新作{二叉树的后序遍历}

文章目录 引言复习&#xff08;单调队列优化DP&#xff09;——最大子序和单调队列的基本实现思路——求可移动窗口中的最值总结 背包模型——宠物小精灵收服问题思路分析参考思路分析 新作二叉树的后续遍历加指针调换 总结 引言 复习 &#xff08;单调队列优化DP&#xff09…

华翰传媒集团横店影视基地盛大开业,汇剧视界APP震撼发布

2024年6月1日上午&#xff0c;横店影视华翰传媒集团携手腾烨影视隆、明艺影视重举办了横店影视基地的开业庆典。这一盛事不仅标志着华翰传媒集团在影视行业发展的重要里程碑&#xff0c;更彰显了其深耕影视产业、致力于打造高质量影视内容的决心与目标。 活动盛况空前&#xff…

企业中面试算法岗时会问什么pytorch问题?看这篇就够了!

如果要面试深度学习相关的岗位&#xff0c;JD上一般会明确要求要熟悉pytorch或tensorflow框架&#xff0c;那么会一般问什么相关问题呢&#xff1f; 文章目录 一. 基础知识与概念1.1 PyTorch与TensorFlow的主要区别是什么&#xff1f; 1.2 解释一下PyTorch中的Tensor是什么&…

虹软ArcSoft—真正离线免费的人脸识别SDK

虹软ArcSoft—真正离线免费的人脸识别SDK 高级功能收费 还是很好滴 人证核验功能是C/C的SDK&#xff0c;需要封装为C#&#xff0c;然后暴露为Restful API使用

Linux 网络总是断开问题

环境&#xff1a;华为欧拉 OpenEuler 24 LTS 版本 现象&#xff1a;配置网络后可以连接&#xff0c;但是使用一段时间后自动断开。 问题解决&#xff1a; 系统的 NetworkManager 与 network.service 冲突导致。 1. 关闭并禁用 NetworkManager systemctl stop NetworkManag…

Ardupilot开源代码之ExpressLRS性能实测方法

Ardupilot开源代码之ExpressLRS性能实测方法 1. 源由2. 测试效果3. 测试配置4. 总结5. 参考资料6. 补充 1. 源由 之前一直在讨论ExpressLRS性能的问题&#xff0c;有理论、模拟、实测。 始终缺乏完整的同一次测试的测试数据集&#xff0c;本章节将介绍如何在Ardupilot上进行获…

半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 Semi-Supervised Medical Image Segmentation Using Adversarial Consistency Learning and Dynamic Convolution Network 半监督医学图像分割&#xff1a;基于对抗一致性学习和动态卷积网络的方法 01 文献速递介绍 医学图像分割在计算辅助诊断和治疗研究中扮演…

Linux Vim 最全面的教程:从入门到精通

感谢您阅读本文&#xff0c;欢迎“一键三连”。作者定会不负众望&#xff0c;按时按量创作出更优质的内容。 ❤️ 1. 毕业设计专栏&#xff0c;毕业季咱们不慌&#xff0c;上千款毕业设计等你来选。 Vim 是 Linux 系统上最强大的文本编辑器之一&#xff0c;以其高效的编辑功能和…

【css】如何修改input选中历史选项后,自动填充的蓝色背景色

自动填充前&#xff1a; 自动填充后&#xff1a; 解决办法 方法一&#xff1a;设置背景透明 改变input自动填充背景颜色 // 通过拉长过渡时间&#xff0c;和延迟过渡开始时间&#xff0c;掩盖input自动填充背景颜色input:-internal-autofill-previewed,input:-internal-aut…

护眼灯是智商税吗?严防存在四大智商税的劣质护眼灯

护眼台灯这类产品相比大家也是很熟悉了&#xff0c;无论是中小学生的家里还是的婴幼儿的家里都几乎都配备着这样一盏护眼灯&#xff0c;但是随着使用护眼灯的人越来越多&#xff0c;网络上就出现了一些关于护眼灯皮肤色素沉着、视网膜损伤、睡眠障碍等安全问题&#xff0c;随着…

递归:汉诺塔问题III

题目 题目描述 约 19 世纪末&#xff0c;在欧洲的商店中出售一种智力玩具:在一块铜板上有三根杆&#xff0c;最左边的杆自上而下、由小到大顺序串着由 64 个圆盘构成的塔。目的是将最左边杆上的圆盘全部移到右边的杆上,条件是一次只能移动一个圆盘&#xff0c;并且不允许大圆盘…

一文理清GO语言日志库实现开发项目中的日志功能(rotatelogs/zap分析)

一文理清GO语言日志库实现开发项目中的日志功能&#xff08;rotatelogs/zap分析&#xff09; rotatelogs rotatelogs 是一个用于管理日志文件的 Go 语言库&#xff0c;它提供了自动轮换、压缩和删除旧日志文件的功能。这个库可以帮助你更好地管理和维护你的应用程序日志。要使…

《HTML趣味编程》专栏内资源的下载链接

目录 关于专栏 博主简介 专栏内资源的下载链接 写在后面 关于专栏 本专栏将持续更新,至少含有30个案例,后续随着案例的增加可能会涨价,欢迎大家尽早订阅!(订阅后可查看专栏内所有文章,并且可以下载专栏内的所有资源) 博主简介 ⭐ 2024年百度文心智能体大赛 Top1⭐…

[Qt] Qt Creator 编译输出乱码,问题页中的报错、警告内容,编译输出乱码

确保文件编码为"UTF-8"&#xff0c;"如果编码是UTF-8则添加"&#xff0c;如下图&#xff1a; 设置IDE环境语言跟随系统语言&#xff0c;Text codec for tools&#xff1a; "System" 瑞斯拜

frp安装与配置

个人从网上杂乱的信息中学习、试错&#xff0c;记录自己成功配置的方法&#xff0c;避免遗忘 一、frp的下载 因目前无法下载&#xff0c;仅保留下载方法&#xff0c;版本号根据实际修改&#xff0c;目前使用0.54版&#xff0c;不同系统下载不同文件。 wget https://github.c…

docker安装fastdfs详细教程

目录 一、前言 二、安装步骤 1、搜索fastdfs镜像 2、拉取镜像,这里我们用delron/fastdfs安装 3、运行镜像 三.查看或修改配置文件 1、进入storage容器 2、查看 storage.conf 配置文件 3、查看nginx配置文件 四、测试文件上传 一、前言 fastdfs是一个开源的分布式文件系…

AI在医学中神奇应用

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT-3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年11月7日&#xff0c;OpenAI首届开发者大会被称为“科技界的春晚”&#xff0c;吸引了全球广大…

空气质量预报模式系统WRF-CMAQ

空气污染问题日益受到各级政府以及社会公众的高度重视&#xff0c;从实时的数据监测公布到空气质量数值预报及预报产品的发布&#xff0c;我国在空气质量监测和预报方面取得了一定进展。随着计算机技术的高速发展、空气污染监测手段的提高和人们对大气物理化学过程认识的深入&a…

pdfFactory虚拟打印机软件下载-pdfFactory虚拟打印机官方最新版下载附加详细安装步骤

pdffactory是一款办公软件&#xff0c;帮助用户更好的进行文件处理&#xff0c;轻松查询使用&#xff0c;不用担心故障的问题&#xff0c;而且打印速度快&#xff0c;效率高&#xff0c;保障用户日常打印轻松。 安 装 包 获 取 地 址&#xff1a; FinePrint-安装包 &#xff1…