Vue elementUi數組嵌套校驗

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

分類: vue

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章