前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue elementUI 表单校验(数组多层嵌套)

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

作者头像
蓓蕾心晴
发布2019-06-05 16:40:40
5K0
发布2019-06-05 16:40:40
举报
文章被收录于专栏:前端小叙前端小叙

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

代码语言:javascript
复制
{
"title":''123455,
"email":'123456@qq.com',
"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名称为原本的名称就可以;

示例代码如下:

代码语言:javascript
复制
<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数组下对象的字段名称绑定为   数组下的名称

示例代码如下:

代码语言:javascript
复制
<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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档