当前位置: 首页 > news >正文

Element通过v-for循环渲染的form表单校验

需求:有个表单信息是v-for渲染的,例如下图,通过循环遍历实现新增和删除模块,按照平时的写法实现校验,是不能实现我们想要的效果,根据这个需求,我找到了一个解决方法

 

1.HTML 

  <el-form ref="form" :model="form" :rules="rules" label-width="110px" ><div v-for="(item,index) in this.form.trucksList"><div class="num">{{index+1}}.</div><div class="flex"><div class="info"><el-form-item label="服务商"   :prop="'trucksList.' + index+'.providerType'" :rules="rules.providerType"><el-select v-model="item.providerType" placeholder="请选择"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.label"></el-option></el-select></el-form-item><el-form-item label="卡车公司"  :prop="'trucksList.' + index+'.truckCompany'" :rules="rules.truckCompany"><el-inputv-model="item.truckCompany"placeholder="请输入卡车公司"/></el-form-item><el-form-item label="预估运输时间" :prop="'trucksList.' + index+'.transportDay'" :rules="rules.transportDay"><el-inputv-model="item.transportDay "placeholder="请输入预估运输时间"/></el-form-item><el-form-item label="总价" :prop="'trucksList.' + index+'.priceTotal'" :rules="rules.priceTotal"><el-inputv-model="item.priceTotal "placeholder="请输入总价"/></el-form-item></div></div></div>
</el-form>

 2.JS

data(){return{// 报价表单参数form: {trucksList:[{providerType:'',//服务商truckCompany:'',//卡车公司transportDay:'',//预估运输时间priceTotal:'',//总价orderNo:" ",//平台订单号}],},// 表单校验rules:{providerType:[{ required: true, message: "请选择服务商", trigger: "blur" }],truckCompany:[{ required: true, message: "请输入卡车公司", trigger: "blur" }],transportDay:[{ required: true, message: "请输入预估运输时间", trigger: "blur" }],priceTotal:[{ required: true, message: "请输入总价", trigger: "blur" }],   },}},

 注:

1.循环的数据中,每个el-form-item都写rules、prop

2.rules为data中rules对象对应属性,如'rules.providerType';

 

3.prop的第一部分为data中该组遍历数据对应的数组名,此例中为form中的'trucksList';第二部分为遍历的key值变量;第三部分为form中的'trucksList'中该输入框对应的属性名;

 只有以上几点写对,就可以实现循环数据的表单校验啦

http://www.lryc.cn/news/128813.html

相关文章:

  • 精彩回顾 | 迪捷软件出席2023ATC汽车电子与软件技术周
  • 树莓派的自启动与桌面应用程序
  • RabbitMQ面试题
  • Kubernetes二进制部署方案
  • Android 13 开启关闭飞行模式
  • C++学习笔记总结练习:EffectiveSTL
  • SQL Developer中的Data Redaction
  • 深入解析Ed25519椭圆曲线数字签名算法的C#移植及应用示例
  • XQuery创建BaseX数据库实例
  • MySQL索引(Index)
  • web框架面试题
  • 什么是字体堆栈(font stack)?如何设置字体堆栈?
  • 推特群推王:引爆您的产品
  • [JavaWeb]【七】web后端开发-MYSQL
  • C语言:初阶测试错题(查漏补缺)
  • 数组累加器-reduce、reduceRight
  • uniapp 官方扩展组件 uni-combox 实现:只能选择不能手写(输入中支持过滤显示下拉列表)
  • TypeScript 语法
  • 已经开源的中文大模型对比,支持更新
  • 调用其他页面onload函数的方法
  • 视频怎么转换成gif表情包?三步完成视频在线转gif
  • ElasticSearch安装与介绍
  • 每天一道leetcode:剑指 Offer 36. 二叉搜索树与双向链表(中等深度优先遍历递归)
  • 基于docker搭建pytest自动化测试环境(docker+pytest+jenkins+allure)
  • Debian 10驱动Broadcom 无线网卡
  • 系统架构设计师---2018年下午试题1分析与解答(试题二)
  • 移远通信推出一站式Matter解决方案,构建智能家居开放新生态
  • 文本挖掘 day5:文本挖掘与贝叶斯网络方法识别化学品安全风险因素
  • laravel框架中批量更新数据
  • 【Linux】POSIX信号量和基于环形队列的生产消费者模型