在写表单的时候,容易碰到这种嵌套表单的数据校验,并且这种表单是动态添加的,网上大部分的做法是表单套表单,实际上只需要一个表单就可以了。

为了方便观看,这里只列举了两条数据

多级表单嵌套校验

  <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}
]
}
})

此处的数据里是一个对象内套了一个数组对象,正常情况下,校验是通过propmodule里面的数据进行校验,但此处是数组,数据在数组内部,所以用一般的prop指定数据名是校验不了的,这里用的是

:prop="goodsDetail.+index+.name"

只需要在prop中指定到当前数据在module里的位置即可。此处的goodsDetail就是v-forruleForm.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表单嵌套检验+动态添加的更多相关文章

  1. Angular 表单嵌套、动态表单

    说明: 组件使用了ng-zorro (https://ng.ant.design/docs/introduce/zh) 第一类:嵌套表单 1. 静态表单嵌套 demo.component.html & ...

  2. Jquery Validate表单验证,动态添加和删除验证规则

    最近一直在忙着维护Jquery的商城,用到了Validate的表单验证,觉得很有意思,就纪录一下. // 动态添加验证规则 $("#invoice_send_region_id") ...

  3. elementUI表单嵌套表格并对每行进行校验

    elementUI表单嵌套表格并对每行进行校验 elementUI 表单嵌套表格并进行校验. 目录 效果展示 代码链接 关键代码 完整代码 效果展示 先看看这是不是需要的效果^_^ ​ 如图,Elem ...

  4. Element表单验证(2)

    Element表单验证(2) 上篇讲的是async-validator的基本要素,那么,如何使用到Element中以及怎样优雅地使用,就在本篇. 上篇讲到async-validator由3大部分组成 ...

  5. async-validator:Element表单验证

    转载文章:Element表单验证(2)   Element表单验证(2) 上篇讲的是async-validator的基本要素,那么,如何使用到Element中以及怎样优雅地使用,就在本篇. 上篇讲到a ...

  6. vue element 表单验证不通过,滚动到固对应位置

    我们在使用elementIUI实现表单验证,内容比较多的时候,提示内容会被遮挡,这时候用户不清楚什么情况,还会连续点击提交按钮.这个时候需求来啦:我们需要在表单验证不通过的时候,页面滚动到对应的位置. ...

  7. Android程序员学WEB前端(3)-HTML(3)-表单嵌套-Sublime

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/76522586觉得博文有用,请点赞,请评论,请关注,谢谢!~ 表单嵌套: <!DO ...

  8. Element表单验证(1)

    Element表单验证(1) 首先要掌握Element官方那几个表单验证的例子,然后才看下面的教程. Element主要使用了async-validator这个库作为表单验证 async-valida ...

  9. elementUI表单嵌套时间报错

    elementUI表单嵌套日期时间选择时间后报错 <el-form-item label="起始结束时间:" required prop="startime&quo ...

  10. vue+element 表单封成组件(1)

    作为一名刚接触vue不到一个月的菜鸟,思想还没有从操作DOM转变为数据驱动,看vue的代码处处别扭.组里为了让我熟悉vue交给了我一个将element 表单封装成组件的练手任务.由于开发过程中遇到的表 ...

随机推荐

  1. <二>自己实现简单的string

    我们结合运算符重载知识实现string 类 在自己实现的String类中可以参考C++中string的方法 例如构造,加法,大小比较,长度,[] 等操作. 当前的MyString 类中,暂时不加入迭代 ...

  2. i春秋Musee de X

    打开提示我们如果要操作就需要登录 题目也没有给出tips提示 /tmp/memes/wosun 注册成功后提示我们我们的文件被储存在了.....可能这道题会用到一句话木马,毕竟他目录都给我们了 然后去 ...

  3. sql注入的一丢丢

  4. K8S的架构及工作原理

    1.Master和Node 1).Master K8S中的Master是集群控制节点,负责整个集群的管理和控制 在Master上运行着以下关键进程: kube-apiserver:提供了HTTP Re ...

  5. flutter系列之:如丝般顺滑的SliverAppBar

    目录 简介 SliverAppBar详解 SliverAppBar的使用 总结 简介 对于一个APP来说,肯定会有一个AppBar,这个AppBar一般包含了APP的导航信息等.虽然我们可以用一个固定 ...

  6. JavaScript:输入语法:prompt与confirm

    prompt prompt有两个参数: 第一个参数会显示在弹窗的输入框的上方: 第二个参数是可选的,会显示在输入框内,是一个初始值: 我们在输入框内输入的任何内容,都会作为返回值,返回给变量resul ...

  7. CLI框架:klish安装与使用

    在通信设备领域,思科的路由器设备可以用CLI进行操作.这里介绍的开源项目klish是思科CLI风格(CISCO-like CLI)的框架.命令配置文件为xml格式. 源码:pkun/klish: Th ...

  8. 万字长文解析Scaled YOLOv4模型(YOLO变体模型)

    一,Scaled YOLOv4 摘要 1,介绍 2,相关工作 2.1,模型缩放 3,模型缩放原则 3.1,模型缩放的常规原则 3.2,为低端设备缩放的tiny模型 3.3,为高端设备缩放的Large模 ...

  9. 低代码开发平台YonBuilder移动开发,开发阅读APP教程

    ​ 设计实现效果如下图: 主要包括书架,阅读,收藏功能. 经过分析,我们可以先实现底部导航功能,和书架列表页面. 1. 使用 tabLayout 高级窗口实现底部导航 . 使用tabLayout 有两 ...

  10. [深度学习] tf.keras入门4-过拟合和欠拟合

    过拟合和欠拟合 简单来说过拟合就是模型训练集精度高,测试集训练精度低:欠拟合则是模型训练集和测试集训练精度都低. 官方文档地址为 https://tensorflow.google.cn/tutori ...