vue中elementUI表单循环验证

在这里插入图片描述

进行验证的步骤

1、表单el-form 添加 :model="form" ref="form" :rules="rules",注意是 :model="form"不是v-model,而后每个el-form-item绑定prop
2、不循环的示例在官网可看
3、循环表单的验证:3-1、el-form-item 绑定 :prop="`addList[${index}][orderNum]`" :rules="rules.orderNum"注意不循环的表单每个el-form-item 不需要单独加:rules="rules.orderNum"然后prop的名字要与data中的rules数组对象的名称相同即可3-2、js判断时,此处的orderNum也就是data中的rules中的名称`this.$refs.form.validateField('orderNum', (valid) => {//valid返回的是规则集中写的错误提示信息,如果满足条件,返回的就是空if (valid) {return this.$refs["form"].clearValidate('orderNum');}});`
<el-form class="demo-form" :model="form" ref="form" :rules="rules" label-width="100px"><el-col :span="12"><el-form-item label="名称:" prop="name"><el-input clearable v-model="form.name" placeholder="请输入考评名称"></el-input></el-form-item></el-col><el-col :span="12"><el-form-item label="选择:" prop="indexId"><el-select clearable v-model="form.indexId" placeholder="请选择指标" style="width:100%;" @change="removeHintChange(form.indexId,'indexId')"><el-option v-for="item in targetOptions" :key="item.value" :label="item.label" :value="item.value"></el-option></el-select></el-form-item></el-col><el-col class="wrap"><div class="step" v-for="(item, index) in form.addList" :key="index"><div class="stepName">步骤{{index+1}}</div><el-form-item label="考试考试考试考试:" class="evaluationPerson" :prop="`addList[${index}][personNameId]`" :rules="rules.personNameId"><el-select clearable v-model="item.personNameId" placeholder="请选择人员" @change="removeHintChange(item.personNameId,`addList[${index}][personNameId]`)"><el-option v-for="item in personOptions" :key="item.value" :label="item.label" :value="{value:item.value,label:item.label}"></el-option></el-select></el-form-item><el-form-item label="顺序:" class="order" :prop="`addList[${index}][orderNum]`" :rules="rules.orderNum"><el-input clearable v-model="item.orderNum" @input="changeMemberId($event,index,0)"></el-input></el-form-item><el-form-item label="顺1:" class="weight" :prop="`addList[${index}][ratio]`" :rules="rules.ratio"><el-input clearable v-model="item.ratio" @input="changeMemberId($event,index,1)"></el-input><div class="percent">%</div></el-form-item><el-form-item label="备注:" class="remarks" :prop="`addList[${index}][remark]`" :rules="rules.remark"><el-input clearable type="textarea" v-model="item.remark" placeholder="部门负责人"></el-input><div class="iconPic" @click="deleteInformation(index)"><i class="el-icon-delete-solid"></i></div></el-form-item></div></el-col><el-col class="addInfor"><el-button type="primary" plain size="mini" @click="addInformation"><i class="el-icon-plus"></i>添加</el-button></el-col></el-form>
data() {return {dialogShow1: true,// 指标选择indexId: "",targetOptions: [{ label: "11", value: 1 }],// 考评人员personNameId: "",personOptions: [{ label: "22", value: 1 }],form: {indexId: "",// 表单字段列表addList: [{ personNameId: "", orderNum: "", ratio: "", remark: "" }],},// 校验规则rules: {name: [{ required: true, message: "请输入名称", trigger: "blur" }],indexId: [{ required: true, message: "请选择", trigger: "blur" },],personNameId: [{ required: true, message: "请选择(人员)", trigger: "blur" },],orderNum: [{ required: true, message: "请输入顺序", trigger: "blur" }],ratio: [{ required: true, message: "请输入权重", trigger: "blur" }],remark: [{ required: true, message: "请输入备注", trigger: "blur" }],},};},
// 限制有的输入框只能输入数字changeMemberId(val, index, num) {if (num === 0) {this.form.addList[index].orderNum = val.replace(/[^\d]/g, "");} else if (num === 1) {this.form.addList[index].ratio = val.replace(/[^\d]/g, "");}},// 强制去掉验证removeHintChange(value, name) {if (value != null || "" || []) {this.$refs.form.validateField(name, (valid) => {//valid返回的是规则集中写的错误提示信息,如果满足条件,返回的就是空if (valid) {return this.$refs["form"].clearValidate(name);}});}},// 添加步骤addInformation() {this.form.addList.push({personNameId: "",orderNum: "",ratio: "",remark: "",});},// 弹窗 - 删除信息deleteInformation(val) {if (this.form.addList.length > 1) {this.form.addList.splice(val, 1);} else {this.$message({message: "不可全部删除,最少一条新增数据信息",type: "warning",});}},

<style scoped lang="scss">
// 弹窗中的内容
.addInfor {margin-bottom: 16px;display: flex;justify-content: end;
}
.wrap {max-height: 40vh;overflow-y: auto;
}
.step {display: flex;.stepName {white-space: nowrap;line-height: 36px;color: #606266;font-size: 14px;font-weight: 700;}
}
::v-deep .step .el-form-item__content {display: flex;
}
::v-deep .step .evaluationPerson .el-form-item__label {width: 150px !important;
}
::v-deep .step .order .el-form-item__label,
::v-deep .step .weight .el-form-item__label,
::v-deep .step .remarks .el-form-item__label {width: 70px !important;
}
::v-deep .step .order .el-form-item__content,
::v-deep .step .weight .el-form-item__content,
::v-deep .step .remarks .el-form-item__content {margin-left: 70px !important;
}
::v-deep .el-dialog__header {font-weight: 700;
}
::v-deep .el-textarea textarea {height: 36px;
}
.percent {margin-left: 10px;
}
.iconPic {margin-left: 10px;font-size: 16px;color: red;
}
</style>

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

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

相关文章

顺序表 --- C语言实现

目录 1.线性表 2.顺序表 2.1 概念和结构 2.2 接口实现 2.3 数组相关面试题 2.4 顺序表的问题及思考 1.线性表 什么是线性表 &#xff1a; 线性表&#xff08;linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构&#xff0c;常…

阿里云服务器架构X86_GPU_裸金属_超级计算集群详解

阿里云服务器架构有什么区别&#xff1f;X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、超级计算集群有什么区别&#xff1f;阿里云服务器网分享云服务器ECS架构详细说明&#xff1a; 目录 阿里云服务器ECS架构说明 X86计算 ARM计算 GPU/FPGA/ASIC 弹性裸金属服务…

A_003.adb常用命令使用介绍

1.adb工作原理说明 adb命令是调试控制手机过程中用的比较多工具。adb是一个C/S架构的应用程序,主要由三部分组成: (1)、运行在电脑端的adb client程序 在电脑终端中执行adb --help可以查看当前支持的adb命令。当在命令行执行程序adb相关命令的时候,adb程序尝试连接到主机上…

layui选项卡演示

layui选项卡演示 .1 引入layui2. 选项卡演示实列3.js分离的代码4运行结果 在前端开发中&#xff0c;选项卡常用于展示多个内容模块&#xff0c;提供用户友好的界面交互方式。layui作为一款简洁易用的前端框架&#xff0c;提供了丰富的组件库&#xff0c;其中包括了强大且易用的…

Drag Your GAN论文解读,基于点的交互式操作拖动到生成图像[DragGAN]

只需要鼠标的点击就可以自动修图的产品&#xff0c;火爆问世&#xff0c;可以说是超越PS&#xff0c;神一般的存在了&#xff0c;而且没有门槛&#xff0c;对于普通大众来说直接可以上手使用&#xff0c;这个是PS完全不具备的。更关键的是&#xff0c;这款产品跟PS明显区别在于…

【yarn】 ‘husky install‘ fails if ‘.git‘ directory does not exists解决方法

问题描述 环境&#xff1a;win10 yarn 1.22.19 问题&#xff1a;在使用yarn安装前端依赖时&#xff0c;yarn install 出现错误: .git can’t be found (see https://git.io/Jc3F9) error Command failed with exit code 1. 截图 原因分析 根据设计&#xff0c;husky安装必…

开启visual studio,git for windows 疯狂占用内存的解决

1、开启visual studio&#xff0c;git for windows 疯狂占用内存的解决 最近开启visual studio写代码的时候&#xff0c;IDE总是会莫名奇妙的卡住然后闪退&#xff0c;今天打开任务管理器看了下原因&#xff0c;发现是visual studio所占磁盘内存不断疯涨&#xff0c;每秒几十M…

【软件设计原则】系统设计面试基础:CAP 与 PACELC

什么是 CAP 定理以及 PACELC 如何扩展它&#xff1f; 在分布式系统中&#xff0c;可能会发生不同类型的故障&#xff0c;例如&#xff0c;服务器可能会崩溃或永久故障&#xff0c;磁盘可能会损坏导致数据丢失&#xff0c;或者网络连接可能会丢失&#xff0c;导致系统的一部分无…

Java字符串比较的方法(3种)

1.equals()方法 equals()方法将两个字符串每个字符是否相同进行逐一比较&#xff0c;若相同返回true反之返回false&#xff0c;对于字符的大小写也在检查范围内&#xff0c;equals()方法格式如下&#xff1a;str1.equals(str2); 程序实例 public class Demo {public static voi…

【C语言督学营 第十八天】考研408排序大题初探(将排序思想融入题目)

文章目录 题目一分析代码实战 题目二分析代码实战 补充(快排与归并)数据结构大题注意点&#xff01;&#xff01;&#xff01;(评分标准) 题目一 分析 (1&#xff09;算法的基本设计思想 由题意知&#xff0c;将最小的nl2个元素放在Ai中&#xff0c;其余的元素放在A2中&#x…

JavaScript--改变 HTML 的值

要改变 HTML 元素的值&#xff0c;可以使用以下方法&#xff1a; 1.使用元素节点的 innerText 属性来改变元素的文本内容。 例如&#xff1a;element.innerText 新的文本内容; 2.使用元素节点的 innerHTML 属性来改变元素的 HTML 内容。 例如&#xff1a;element.innerHTML …

《分布式中间件技术实战:Java版》学习笔记(三):Redis实现点赞、取消赞功能

用户在发布内容&#xff08;包括博客、想法、日记等等&#xff09;时&#xff0c;后台数据入库后&#xff0c;要往Redis的有序集合添加一条分数为0的记录。这个有序集合是用来对内容点赞量做排序的。同时&#xff0c;可以记录用户操作日志。 Override public String insertArt…

react使用SVGA特效 常用api

下载插件 npm install svgaplayerweb --save react中代码 import React, { useEffect } from react; import SVGA from svgaplayerweb const Svga () > {const bofang () > {var player new SVGA.Player(#demoCanvas);//创建实例var parser new SVGA.Parser(#demo…

AR增强现实技术解决企业远程协作需求

随着科技的不断发展&#xff0c;AR(增强现实)远程协同系统已经成为了一种新型的工作方式。这种系统利用AR技术将虚拟信息叠加到现实世界中&#xff0c;从而实现异地高效协作。 由广州华锐互动开发的AR远程协同系统&#xff0c;广泛应用于各个行业的远程协作场景中&#xff0c;…

Pycharm专业版连接远程GPU服务器+xshell7和xrtp7下载

这篇博客就带大家手把手用pycharm连接远端服务器&#xff0c;用服务器上的GPU跑代码。其中有很多雷点&#xff0c;都一一帮大家踩了&#xff0c;所以这也是一篇避雷篇。文章附pycharm专业版下载链接&#xff0c;xshell7和xrtp7的下载和使用说明&#xff0c;希望可以给大家带来帮…

js手动画平滑曲线,贝塞尔曲线拟合

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"…

postgresql 数据库 重建索引 所需时间测试

postgresql 数据库 重建索引 所需时间测试 文章目录 postgresql 数据库 重建索引 所需时间测试前言测试前准备重建索引前数据库状态测试计划重建索引命令测试开始1.先对表2进行测试2. 表3测试3. 表1测试 &#x1f308;后记 前言 众所周知&#xff0c;postgresql数据库使用久了…

layui入门

layui入门 一.ayui简介1.简单易用2.组件丰富3.高度定制化4.响应式布局5.轻量灵活 2.layui的入门基础操作3.登录实例4.注册实例 一.ayui简介 Layui&#xff08;流行音 “layui”&#xff0c;来自“领域的模块化”&#xff09;是一款前端UI框架&#xff0c;专注于提升 Web 开发效…

解决microsoft windows 恶意软件删除工具 占用内存高

1、winR快捷键&#xff0c;输入regedit&#xff0c;按回车键进入注册表编辑器 2、定位到 \HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\ 并创建新项MRT 3、 新建DWORD(32)值&#xff0c;命名为DontOffer ThroughWUAU,数值数据为1; 4、以管理员身份运行命令提示符&#x…

论文(1)——大家说SCI的一区二区和CCF中A类B类是什么意思?

文章目录 引言问题描述问题解决CCF 和A、B、C类CCF注意事项 SCI和一区、二区如何判定你找的论文所属的会议或期刊是几区或者几类&#xff1f;使用特定的网站查询使用浏览器插件 一年之内的应该投什么刊物&#xff1f; 总结参考 引言 已经研一暑假了&#xff0c;周围很多人已经…