vue elementUI 表单校验(数组多层嵌套)

在使用vue element-ui form表单渲染的时候,会遇到这样的数据结构:

{
"title":‘‘123455,
"email":‘[email protected]‘,
"list": [
            {
                "id": "quis consequat culpa ut pariatur",
                "name": "et quis irure dolore ullamco",
                "ompany": "sunt mollit",
                "address": "anim reprehenderit aliquip labore velit"
            },
            {
                "id": "",
                "name": "laborum magna",
                "company": "mollit esse ipsum quis",
                "address": "cillum dolore ex ut"
            },
        ]
}

在遇到某个字段值比如list是个数组,下面多个字段值还需要继续使用rules校验时候,直接给list下面的字段绑定prop="对应的字段值",是不能校验成功的,解决办法有二:

1、在是数组的地方再套一个<el-form :model="当前子对象" v-for="遍历list这个数组"></el-form>

给list数组下的字段直接还是绑定prop名称为原本的名称就可以;

示例代码如下:

<el-form :model="item" v-for="(item,index) in dataFields.list :key="index">
   <el-form-item label="name" prop="name" :rules="{ required: true, message: ‘Required‘, trigger: ‘blur‘ }">
      <el-input placeholder="name" v-model="item.name"></el-input>
   </el-form-item>
</el-form>

2、直接给list数组下对象的字段名称绑定为   数组下的名称

示例代码如下:

<div v-for="(item,index) in dataFields.list :key="index">
    <el-form-item label="name" :prop="`list[${index}].name`" :rules="{ required: true, message: ‘Required‘, trigger: ‘blur‘ }">
       <el-input placeholder="name" v-model="item.name"></el-input>
   </el-form-item>
</div>

这里list即为上面对象中的数组,datafields是最外层对象。

参考链接:

https://segmentfault.com/a/1190000014366951

原文地址:https://www.cnblogs.com/beileixinqing/p/10969828.html

时间: 2024-10-10 16:14:45

vue elementUI 表单校验(数组多层嵌套)的相关文章

【转】vue.js表单校验详解

1.npm安装vue-validator $ npm install vue-validator 代码示例: var Vue=require("vue"); var VueValidator=require("vue-validator"); Vue.use(VueValidator); 2.直接使用script标签引入vue.js 要下载vue-validator,那么进入cdn的地址https://cdn.bootcss.com/vue-validator/2.

vue+element表单校验功能

要实现这个功能其实并不难,element组件直接用就可以, 但是我在使用过程中碰到了几个坑,就记录下来,分享给大家,避免落坑,话不多说,直接上过程...... 表单校验功能:   实现这个功能,总共分为以下4布: 在el-form标签中定义:rules="rules";ref="reference" 在el-form-item定义prop="name"; 在选项data中定义rules校验规则; 在提交方法中检查用户行为 template代码:

【Vue -- 2/100】element-ui 表单校验规则的应用

element-ui 给el-form表单添加校验规则 <!-- 对话框组件 :visible.sync(设置是否显示对话框) width(设置对话框的宽度) :before-close(在对话框关闭前触发的事件) --> <el-dialog title="添加用户" :visible.sync="addDialogVisible" width="50%"> <!-- 对话框主体区域 --> <el-f

vue + elementui表单重置 resetFields问题(无法重置表单)

问题: elementui在重置表单时,无法使用this.$refs['formRefVal'].resetFields()清空表单数据; elementui 设置rules后没有效果 解决方法: 1.表单加ref属性 <el-form ref="refname"></el-form> 2.form的每个item加prop属性(踩了好久的坑这个,需要和绑定数据的最后名称一致,prop属性添加到form-item上) <el-form-item prop=&

浅谈VUE, vue + elementui表单重置 resetFields问题(无法重置表单)

问题: elementui在重置表单时,无法使用this.$refs['formRefVal'].resetFields()清空表单数据; elementui 设置rules后没有效果 解决方法: 第一步写入el-form,首先添加ref属性 <el-form :model="form" ref="roleform"> </el-form> 第二步每一个 el-form-item标签里必须加上prop属性,属性名一定要对应表单里的每一个属性

element-UI 表单校验失效处理

1.el-form-item 的 prop属性绑定的要是字符串: eg: :prop="'answer[' + 0 + ']' "       //而不是    :prop="answer[0]" v-modal="ruleForm.answer[0]" 2.el-form的modal属性绑定表单数据源:后面的prop属性是fuleForm后面的字段而不是fuleForm.answer eg: :modal="fuleForm"

element-ui表单校验

必须注意巨坑:el-form-item上的prop要和 v-model的值名字相同,否则会无效 一.文本框.多选校验 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="活动名称"

vue 表单校验(二)

vue 表单校验(二) vue element-ui表单校验 由于现在使用element-ui进行form表单校验,因而使用其自带的校验规则进行校验,发现有些并不是那么好校验,或者说是校验起来很繁琐,因而一直在研究中 表单校验分类 前后端校验 前端校验 后端校验 这种目前一般是结合起来使用,很少单纯前端校验,或者单纯后端校验的 前端检验 数据录入时校验 数据回显时校验 动态创建时校验 数据是否必填时校验 接下来所谈论的校验都是基于前端进行校验,若是后天校验,只是统一校验规则而已,这样前后便可以统

应用二:Vue之ElementUI Form表单校验

  表单校验是前端开发过程中最常用到的功能之一,根据个人的工作经验总结在此对表单校验功能的基础用法进行整理说明~ 如下代码是Form表单校验的demo示例: <template> <div id="demo"> <el-dialog title="表单校验示例" :close-on-click-modal="false" :visible.sync="dialogVisible" width=&q