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 表单封装成组件的练手任务.由于开发过程中遇到的表 ...
随机推荐
- layui文件上传
//前端代码 <div class="layui-form-item"> <label class="layui-form-label"> ...
- 安装BurpSuite (专业版)
BurpSuite简介: Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HTT ...
- day23 JDBC(Java Database Connection)连接 与 通配符与插入返回主键
JDBC配置connector的jar包 1.项目下新建lib文件夹 2.将mysql-connector-java-版本号.jar复制到lib目录下 3.右键项目名,选择Properties选项 4 ...
- 零基础入门数据挖掘——二手车交易价格预测:baseline
零基础入门数据挖掘 - 二手车交易价格预测 赛题理解 比赛要求参赛选手根据给定的数据集,建立模型,二手汽车的交易价格. 赛题以预测二手车的交易价格为任务,数据集报名后可见并可下载,该数据来自某交易平台 ...
- 【算法总结】【队列均LinkedList】栈和队列、双端队列的使用及案例
1.栈 初始化:Stack<E> stack = new Stack<>(); 出栈:stack.pop() 或 stack.remove(stack.size() - 1) ...
- 【中间件】Docker
一.Docker (一)基础概念 1.概念 是linux容器的一种封装,它是最流行的Linux容器解决方案,由go语言开发 提供简单易用的容器使用接口,方便创建.使用和销毁 2.应用场景 自动打包.持 ...
- bug处理记录:Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512M; support was removed in 8.0
1. 报错: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512M; support was removed ...
- Linux 系统用户文件缺失造成“bash-4.2$”错误的解决办法
一.问题出现的原因 造成这个现象的原因是因为用户文件夹下的bash_logout.bash_profile和bashrc这三个隐藏文件缺失 二.问题复现 现在删除这三个文件 此时问题出现了 三.问题解 ...
- JAVA学到方法写了一个四则运算计算器,请教一下有什么需要改进的
package method; /* * 四则运算计算器 * */ import java.util.Scanner; public class Demo07 { public static void ...
- 前端HTML不使用flash兼容IE浏览器播放视频
前言:最近公司项目上有个需求就是在IE8上不使用flash技术来去实现视频播放 分析:IE8不支持HTML5,所以不能使用video标签,在非IE的浏览器可以使用video标签 目录 我的解决 DEM ...