最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue element動態(tài)渲染、移除表單并添加驗證的實現(xiàn)

 更新時間:2019年01月16日 11:10:15   作者:筱月  
這篇文章主要介紹了vue element動態(tài)渲染、移除表單并添加驗證的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

又接到新需求了吧~~

背景

在一個大表單里,有可能會出現(xiàn)這種需求,用戶可以自己操作動態(tài)添加、移除表單,更加個性化的效果。

常見于填寫個人信息、附加內(nèi)容的表單

例如:

“工作經(jīng)歷”可以用戶自己點擊繼續(xù)添加按鈕,在原有的表單后面 append 多一個表單,不需要就點擊右上方 X 按鈕移除

問題

在實現(xiàn)之前,提出幾個問題

  • vue 怎么動態(tài)渲染或移除表單上去
  • v-model 怎么綁定動態(tài)添加表單的 value 值
  • 動態(tài)新增的表單如何驗證
  • 動態(tài)表單怎么填寫對應(yīng)的 prop
  • ...

好吧,我當時也思考了一會,最后選擇數(shù)組方式,動態(tài)渲染

代碼實現(xiàn)講解

利用數(shù)組,v-for 循環(huán)方式,可以完美實現(xiàn)動態(tài)渲染和移除,因為操作的只有對象數(shù)組而已

export default {
 name: 'vouchersDetail',
 data() {
  return {
   form: {
    regionName: '',
    regionCode: '',
  // 動態(tài)添加的對象數(shù)組
    azList: [
     {
      azName: '',
      logicCode: '',
      physicCode: ''
     }
    ]
   }
  }
 },
 computed: {
  // 至少保留一個動態(tài)表單的開關(guān)
  isShowCloseBtn() {
   return this.form['azList'].length > 1
  }
 },
 methods: {
  addItem() {
   // 點擊添加表單的按鈕,只需要將表單綁定的 value 作為對象 push 到對象數(shù)組
   this.form['azList'].push({
    azName: '',
    logicCode: '',
    physicCode: '',
    weight: ''
   })
  },
  deleteItem(index) {
   // 點擊移除表單的按鈕,根據(jù)點擊的當前 index 移除對象數(shù)組的元素
   this.form['azList'].splice(index, 1)
  },
  goBack() {
   window.history.back(-1)
  }
 }
}

請格外注意動態(tài)添加表單的 rule 和 prop

每個動態(tài)添加的表單都要加上 rule

prop 需要根據(jù)對象數(shù)組下標綁定設(shè)置對應(yīng)的 value(:prop="'azList' + index + '.azName'")

那么對應(yīng)的 html 形式為

<div class="section-form" v-for="(item, index) in form.azList" :key="index"> 
 <span v-if="isShowCloseBtn" class="close" @click="deleteItem(index)">
  <i class="el-icon-close"></i>
 </span> 
 <el-form-item label="可用區(qū)名稱:"
  :rules="[{ required: true, message: '可用區(qū)名稱不能為空' }]"
  :prop="'azList[' + index + '].azName'"
  label-width="150px"> 
  <el-input placeholder="請輸入可用區(qū)名稱" v-model="item.azName" :maxlength="30"></el-input> 
 </el-form-item> 
 <el-form-item label="邏輯可用區(qū)編碼:"
  :rules="[{ required: true, message: '邏輯可用區(qū)編碼不能為空' }]"
  label-width="150px"
  :prop="'azList[' + index + '].logicCode'"> 
  <el-input placeholder="請輸入唯一ID" v-model="item.logicCode" :maxlength="30"></el-input> 
 </el-form-item> 
 <el-form-item label="物理可用區(qū)編碼:"
  :rules="[{ required: true, message: '物理可用區(qū)編碼不能為空' }]"
  label-width="150px"
  :prop="'azList[' + index + '].physicCode'"> 
  <el-input placeholder="請輸入唯一ID" v-model="item.physicCode" :maxlength="30"></el-input> 
 </el-form-item>
</div>

寫在后面

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue實現(xiàn)無縫輪播效果

    Vue實現(xiàn)無縫輪播效果

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)無縫輪播效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • vue自定義組件search-box示例詳解

    vue自定義組件search-box示例詳解

    這篇文章主要介紹了vue自定義組件search-box,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 記錄--使用el-time-picker默認值遇到的問題

    記錄--使用el-time-picker默認值遇到的問題

    這篇文章主要介紹了記錄--使用el-time-picker默認值遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • VUE使用draggable實現(xiàn)組件拖拽

    VUE使用draggable實現(xiàn)組件拖拽

    這篇文章主要為大家詳細介紹了VUE使用draggable實現(xiàn)組件拖拽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue實現(xiàn)本地購物車功能

    Vue實現(xiàn)本地購物車功能

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)本地購物車功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • vue自定義上傳頭像組件功能

    vue自定義上傳頭像組件功能

    這篇文章主要介紹了vue自定義上傳頭像組件功能,介紹了與一般上傳組件的區(qū)別,通過實例代碼介紹了上傳圖片組件的方法,需要的朋友可以參考下
    2024-01-01
  • 詳解vue-cli3開發(fā)Chrome插件實踐

    詳解vue-cli3開發(fā)Chrome插件實踐

    這篇文章主要介紹了vue-cli3開發(fā)Chrome插件實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 使用Vue3封裝實現(xiàn)支持Base64導(dǎo)出的電子簽名組件

    使用Vue3封裝實現(xiàn)支持Base64導(dǎo)出的電子簽名組件

    這篇文章主要為大家詳細介紹了使用Vue3封裝實現(xiàn)支持Base64導(dǎo)出的電子簽名組件的相關(guān)知識,文中的示例代碼講解詳細,有需要的小伙伴可以了解下
    2025-03-03
  • Vue?click事件傳遞參數(shù)的示例教程

    Vue?click事件傳遞參數(shù)的示例教程

    這篇文章主要介紹了Vue?click事件傳遞參數(shù)--方法/教程/實例,本文用示例介紹Vue中事件傳參的方法,采用click這個事件進行展示,結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • webstorm添加*.vue文件支持

    webstorm添加*.vue文件支持

    這篇文章主要介紹了webstorm添加*.vue文件支持,webstorm很多的插件內(nèi)置,不用安裝插件,下面嘗試用vue和es6做項目,有興趣的可以了解一下
    2018-05-05

最新評論

子长县| 汉阴县| 上高县| 尉氏县| 楚雄市| 简阳市| 贵阳市| 南雄市| 荔波县| 手游| 绵阳市| 论坛| 鄂伦春自治旗| 正蓝旗| 开封市| 营口市| 芷江| 乳山市| 徐闻县| 樟树市| 会东县| 古浪县| 合肥市| 勐海县| 青冈县| 娱乐| 沙坪坝区| 大丰市| 凯里市| 平凉市| 洛隆县| 嘉禾县| 五华县| 岱山县| 眉山市| 汉源县| 德钦县| 莱州市| 历史| 博兴县| 丰城市|