element表单嵌套检验+动态添加

在写表单的时候,容易碰到这种嵌套表单的数据校验,并且这种表单是动态添加的,网上大部分的做法是表单套表单,实际上只需要一个表单就可以了。
为了方便观看,这里只列举了两条数据
多级表单嵌套校验
<el-form
ref="ruleFormRef"
:model="ruleForm.FormTable"
:rules="rules"
label-width="80px"
class="demo-ruleForm"
label-position="left"
:size="formSize"
status-icon
>
<div class="addFrom">
<el-button @click="addGoodsInfo"><el-icon><Plus /></el-icon>添加</el-button>
<div class="addFrom_box" v-for="(item,index) in ruleForm.FormTable.goodsDetail" :key="index">
<!-- 嵌套检验 -->
<el-form-item label="商品编号"
:prop="`goodsDetail.`+index+`.name`"
:rules="[{ required: true, message: '请输入商品编号', trigger: 'blur' }]"
>
<el-form-item label="商品数量"
:prop="`goodsDetail.`+index+`.goodsNum`"
:rules="[{ required: true, message: '请输入商品数量', trigger: 'blur' }]">
<el-input-number :min="1" :max="10" v-model="item.goodsNum" placeholder="请输入" />
</el-form-item>
<el-input clearable v-model="item.name" placeholder="请输入商品编号" />
</el-form-item>
</div>
</div>
</el-form>
数据
// 为了演示校验,这里多套了一层
const ruleForm = reactive({
FormTable:{
name: 'fanction',
goodsDetail : [
{id:null,name:null,goodsNum:null,store:null}
]
}
})
此处的数据里是一个对象内套了一个数组对象,正常情况下,校验是通过prop对module里面的数据进行校验,但此处是数组,数据在数组内部,所以用一般的prop指定数据名是校验不了的,这里用的是
:prop="
goodsDetail.+index+.name"
只需要在prop中指定到当前数据在module里的位置即可。此处的goodsDetail就是v-for中ruleForm.FormTable.goodsDetail的最后面一位,向下寻找,goodsDetail[index].name就是当前的数据,只不过这里改成了xxx.xxx.xxx的链式写法。
校验规则写在el-form-item上面:
:rules="[{ required: true, message: '请输入商品编号', trigger: 'blur' }]"
动态添加,只需要给数组末尾添加一个空对象即可。
// 添加按钮
const addGoodsInfo = () => {
ruleForm.FormTable.goodsDetail.push({id:null,name:null,goodsNum:null,store:null})
}
动态删除,给当前条添加一个点击事件,找到当前条删除。
// 删除按钮
const deleteGodos = (index : number) => {
console.log(index);
ruleForm.FormTable.goodsDetail.splice(index,1)
}
element表单嵌套检验+动态添加的更多相关文章
- Angular 表单嵌套、动态表单
说明: 组件使用了ng-zorro (https://ng.ant.design/docs/introduce/zh) 第一类:嵌套表单 1. 静态表单嵌套 demo.component.html & ...
- Jquery Validate表单验证,动态添加和删除验证规则
最近一直在忙着维护Jquery的商城,用到了Validate的表单验证,觉得很有意思,就纪录一下. // 动态添加验证规则 $("#invoice_send_region_id") ...
- elementUI表单嵌套表格并对每行进行校验
elementUI表单嵌套表格并对每行进行校验 elementUI 表单嵌套表格并进行校验. 目录 效果展示 代码链接 关键代码 完整代码 效果展示 先看看这是不是需要的效果^_^ 如图,Elem ...
- Element表单验证(2)
Element表单验证(2) 上篇讲的是async-validator的基本要素,那么,如何使用到Element中以及怎样优雅地使用,就在本篇. 上篇讲到async-validator由3大部分组成 ...
- async-validator:Element表单验证
转载文章:Element表单验证(2) Element表单验证(2) 上篇讲的是async-validator的基本要素,那么,如何使用到Element中以及怎样优雅地使用,就在本篇. 上篇讲到a ...
- vue element 表单验证不通过,滚动到固对应位置
我们在使用elementIUI实现表单验证,内容比较多的时候,提示内容会被遮挡,这时候用户不清楚什么情况,还会连续点击提交按钮.这个时候需求来啦:我们需要在表单验证不通过的时候,页面滚动到对应的位置. ...
- Android程序员学WEB前端(3)-HTML(3)-表单嵌套-Sublime
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/76522586觉得博文有用,请点赞,请评论,请关注,谢谢!~ 表单嵌套: <!DO ...
- Element表单验证(1)
Element表单验证(1) 首先要掌握Element官方那几个表单验证的例子,然后才看下面的教程. Element主要使用了async-validator这个库作为表单验证 async-valida ...
- elementUI表单嵌套时间报错
elementUI表单嵌套日期时间选择时间后报错 <el-form-item label="起始结束时间:" required prop="startime&quo ...
- vue+element 表单封成组件(1)
作为一名刚接触vue不到一个月的菜鸟,思想还没有从操作DOM转变为数据驱动,看vue的代码处处别扭.组里为了让我熟悉vue交给了我一个将element 表单封装成组件的练手任务.由于开发过程中遇到的表 ...
随机推荐
- Android ViewPager2 + Fragment 联动
Android ViewPager2 + Fragment 联动 本篇主要介绍一下 ViewPager2 + Fragment , 上篇中简单使用了ViewPager2 实现了一个图片的滑动效果, 那 ...
- 3.7:基于Weka的K-means聚类的算法示例
〇.目标 1.使用Weka平台,并在该平台使用数据导入.可视化等基本操作: 2.对K-means算法的不同初始k值进行比较,对比结果得出结论. 一.打开Weka3.8并导入数据 二.导入数据 三.Si ...
- 2.6:Python数据存取-文件、文件夹及目录、数据库
一.Python文件读写 1.文件的打开模式 <class '_io.TextIOWrapper'>和<class '_io.BufferedReader'>.python使用 ...
- socket模块/TCP协议/黏包处理
socket模块 如果我们需要编写基于网络进行数据交互的程序 意味着我们需要自己通过代码来控制我们之前 所学习的OSI七层(很繁琐 很复杂 类似于我们自己编写操作系统) socket类似于操作系统 封 ...
- 痞子衡嵌入式:国内外串行NOR Flash厂商官网Cross Reference功能使用体验
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是国内外串行NOR Flash厂商官网Cross Reference功能. 串行 NOR Flash 是一个相对发展稳定的市场,目前全球市场 ...
- MySQL进阶实战7,查询的执行过程
@ 目录 一.拆分查询 二.分解关联查询 三.查询的执行过程 四.优化器的一些优化手段 1.重新定义关联表的顺序 2.将外连接转化为内连接 3.使用增加变换规则 4.优化count().max().m ...
- 盘点现在用的SqlServer 5种分页方式和拉姆达表达式分页,进来看看吧。
现在基本上大家都在使用各种轮子自带的分页,大家是否还记得sql分页怎么写? 今天我们就来盘一盘怎么写和用哪种方式写. 欢迎大家评论区讨论. 1.ROW_NUMBER() OVER()方式(SQL201 ...
- bitlocker加密如何找密钥解锁
步骤1:在其他设备上登录[微软账号],地址:https://account.microsoft.com 步骤2:找到[自己的设备],查看[Bitlocker]密钥登录进去能看到[设备],找要解锁的那台 ...
- 物以类聚人以群分,通过GensimLda文本聚类构建人工智能个性化推荐系统(Python3.10)
众所周知,个性化推荐系统能够根据用户的兴趣.偏好等信息向用户推荐相关内容,使得用户更感兴趣,从而提升用户体验,提高用户粘度,之前我们曾经使用协同过滤算法构建过个性化推荐系统,但基于显式反馈的算法就会有 ...
- python之路35 MySQL 3 字段的约束条件 外键关系
字段约束条件 无符号.零填充 unsigned id int unsigned zerofill id int(5) zerofill 非空 create table t1( id int, name ...