首页 > 其他分享 >elementui表单循环添加校验

elementui表单循环添加校验

时间:2023-04-17 11:14:07浏览次数:40  
标签:index arr num elementui 校验 单循环 dynamicValidateForm domains data

 1  <el-form
 2         :model="dynamicValidateForm"
 3         ref="dynamicValidateForm"
 4         :inline="true"
 5       >
 6         <template v-for="(item, index) in dynamicValidateForm.domains">
 7           <div :key="index + 6" class="demo-dynamic">
 8             <span :key="index.index + 5" class="demo-dynamic-span">{{
 9               index + 1
10             }}</span>
11             <el-form-item
12               label="数量:"
13               :prop="'domains.' + index + '.num'"
14               :key="item.index + 1"
15               class="displays"
16               :rules="{ required: true, min: 1, message: '数量不能为0,', trigger: 'change' }"
17             >
18               <el-input
19                 v-model="item.num"
20                 placeholder=""
21                 clearable
22                 size="small"
23               ></el-input>
24             </el-form-item>
25 
26             <el-form-item
27               label="日期1:"
28               :prop="'domains.' + index + '.jhrq'"
29               :key="item.index + 2"
30               class="displays"
31               :rules="{ required: true, message: '日期不能为空', trigger: 'blur' }"
32             >
33               <el-date-picker
34                 v-model="item.jhrq"
35                 type="date"
36                 placeholder="请选择"
37                 size="small"
38                 value-format="yyyy-MM-dd"
39               >
40               </el-date-picker>
41             </el-form-item>
42 
43             <el-form-item
44               label="日期2:"
45               :prop="'domains.' + index + '.xdrq'"
46               :key="item.index + 3"
47               class="displays"
48               :rules="{ required: true, message: '日期不能为空', trigger: 'blur' }"
49             >
50               <el-date-picker
51                 v-model="item.xdrq"
52                 type="date"
53                 placeholder="请选择"
54                 size="small"
55                 value-format="yyyy-MM-dd"
56               >
57               </el-date-picker>
58             </el-form-item>
59             <el-form-item
60               :key="item.index + 4"
61               v-if="item.index == dynamicValidateForm.domains.length - 1"
62               class="displays w8"
63             >
64               <i
65                 class="el-icon-circle-plus-outline icon1s"
66                 @click="changeFormItem('add', item)"
67               ></i>
68               <i
69                 class="el-icon-remove-outline icon2s"
70                 @click="changeFormItem('reduce', item)"
71               ></i>
72             </el-form-item>
73           </div>
74         </template>
75       </el-form>

 data 数据结构:

 1 dynamicValidateForm: {
 2   domains: [
 3     {
 4       num: "",
 5       jhrq: "",
 6       xdrq: "",
 7       index: 0 8     }
 9   ]
10 }

 methods:代码

1 let obj = {
2   num: "",3   jhrq: "",
4   xdrq: "",
5   index: item.index + 16 };
7 let arr = JSON.parse(JSON.stringify(this.dynamicValidateForm.domains));
8 arr.push(obj);
9 this.$set(this.dynamicValidateForm, "domains", arr);

注意:

 1. 我们需要在prop时使用数组名称+index+具体参数,同时rules规则需要单独配置,接着v-model需要双向绑定对应的值

     以上为:'domains.' + index + '.num'" 或者.num其他

  2. data 里面默认有一组初始化为空的数据,否则双向绑定、验证会失败

  3. 动态新增可以使用this.dynamicValidateForm.domains.push(this.$options.data.call(this).dynamicValidateForm.domains[0]) 或者是 this.$set()方法

 

标签:index,arr,num,elementui,校验,单循环,dynamicValidateForm,domains,data
From: https://www.cnblogs.com/PengZhao-Mr/p/17325172.html

相关文章

  • 解决密码校验问题
    密码教研中的问题http协议是无状态的协议,每次请求间不能实现数据共享.这样的状况下,不能在后续请求中获取是否登录的数据解决方法1.在员工登录成功后,需要将用户登录成功的信息存起来,记录用户已经登录成功的标记。2.在浏览器发起请求时,需要在服务端进行统一拦截,拦截后进行登......
  • 2023.04.16 - TS编译之后的JS不具备校验功能
    TypeScript编译后的JavaScript文件并不具备类型检查的功能,因为JavaScript语言本身是动态类型、弱类型的,在运行时无法推断变量的类型,只能在编译时推断。而将TypeScript文件编译成JavaScript文件时,会把TypeScript中的类型声明和类型检查都去掉,只保留JavaScript代码,所以......
  • 取消git提交时precommit代码校验
    用git进行代码管理,当我执行gitcommit操作时,会出现一下代码来检测提交的代码Pro:hcf-vuehh$gitadd--allPro:hcf-vuehh$gitcommit-m'wq'husky>pre-commit(nodev8.11.2)❯Runningtasksforsrc/**/*.{js,jsx,vue}⠼eslint解决办法:1.进入项目所在文......
  • 批量上传GPT知识库,前端elementui的upload上传组件,后端Golang的上传接口实现
    为了实现批量上传GPT的知识库并且功能,那么这个上传组件就必不可少,需要能把文档上传到服务器中。前端部分,我是采用的cdn引入的形式,引入的elmentui。该框架是有上传组件的,可以参考我的用法:action部分就是上传接口,其他三个是上传之前的处理,上传成功和失败后的回调函数......
  • 微信小程序 web-view在校验合法域名后视频不能播放
    异常 注:视频资源在小程序的服务器上  原因:web-view请求的外网资源需要在小程序的后台配置业务域名才能访问,并将验证文件放置在服务器根目录下在配置业务域名时遇到一个问题是,业务域名配置不能带端口,请求的服务器资源的域名带端口,校验文件没法放置到指定域名位置下,后又在......
  • 配置路由表及登录态校验
    前几天我完成了一个哔哩哔哩的博主视频下的一个react项目,借此项目来巩固学习的知识,这篇文章主要记录我在该项目用到的路由知识配置路由表在src下新建一个router文件夹,在router文件夹下新建index.js和router.jsrouter.js是将将项目中的所有路由引入并制作成一张路由表,在该文件下......
  • BISS-C 8通道采集renishaw传感器及其CRC校验
    背景BISS-C是常见的位置编码器传输协议,相对于传统的协议,支持更快的传输速度,电器接口为电压差分RS422或者485,抗干扰能力较强,在精密位置传输中应用广泛。下述信息源自雷尼绍典型的请求循环进程如下:当空闲时,主接口使MA线保持高电平。光栅通过使SLO线保持高电平显示它已准备......
  • 日志相关、全量字段校验
    一、日志简介日志也叫log,通常对应的xxx.log的日志文件。文件的作用是记录系统运行过程中,产生的信息。搜集日志的作用:查看系统运行是否正常。分析、定位bug 二、日志级别logging.DEBUG:调试级别【高】,打印非常详细的日志信息。适用于代码调......
  • 基于elementui的Tree虚线,实线绘制,以及懒加载,如图
     加减号用的是阿里的矢量图标库。自行去下载 路径:https://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2 <template><divclass="content-box"><divclass="content-top-lable">系统设置</div><divstyle="padd......
  • 用Java写一段中国身份证的正则表达式,要求验证身份证中的日期,且大于1900年,以及校验码验
    以下是一个Java正则表达式,可用于验证中国身份证中的日期,并要求日期在1900年及之后:Stringregex="(?:(?:19[0-9]\\d)|(?:[2-9]\\d{3}))(?:0[1-9]|1[012])(?:0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]";这个正则表达式的含义如下:(?:(?:19[0-9]\\d)|(?:[2-9]\\d{3})):匹配1900年......