欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Element實現(xiàn)動態(tài)增加多個輸入框并校驗

 更新時間:2023年07月07日 16:30:33   作者:一碗情深  
本文主要介紹了Element實現(xiàn)動態(tài)增加多個輸入框并校驗,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

在做復(fù)雜的動態(tài)表單,實現(xiàn)業(yè)務(wù)動態(tài)變動,比如有一條需要動態(tài)添加的el-form-item中包含了多個輸入框,并實現(xiàn)表單驗證,但在element-ui組件庫中給出的表單校驗中沒有這樣的格式,想要實現(xiàn)這個功能就來跟我一起學(xué)習(xí)吧。

實現(xiàn)通過按鈕動態(tài)增加表單并驗證必填

先上實現(xiàn)效果圖:

實現(xiàn)代碼如下:

<el-form-item v-for="(item, index) in form.settings" :key="index" :label="'設(shè)置' + (index + 1)">
  <el-form-item label="名稱" :prop="'settings.'+index+'.name'" :rules="[{ required: true, message: '必填項', trigger: 'change' }]" label-width="50px">
    <el-input v-model.trim="item.name" style="width: 100px" />
  </el-form-item>
  <el-form-item label="值" :prop="'settings.'+index+'.val'" :rules="[{ required: true, message: '必填項', trigger: 'change' }]" label-width="50px">
    <el-input v-model.trim="item.val" style="width: 100px" />
  </el-form-item>
  <el-form-item label="key" :prop="'settings.'+index+'.key'" :rules="[{ required: true, message: '必填項', trigger: 'change' }]" label-width="50px">
    <el-input v-model.trim="item.key" style="width: 100px" />
  </el-form-item>
  <el-form-item>
    <el-button @click.prevent="removeSetting(item)">刪除</el-button>
  </el-form-item>
</el-form-item>
<el-form-item label=" ">
  <el-button icon="el-icon-circle-plus-outline" @click="addSetting()">新增設(shè)置</el-button>
</el-form-item>

實現(xiàn)思路

el-form-item 中嵌套 el-form-item ,只需要拼接一下prop就可以直接使用校驗:

:prop=“‘settings.’+index+‘.name’”

  • settings 是for循環(huán)取值的數(shù)組
  • name 是輸入框雙向綁定的值

:rules=“[{ required: true, message: ‘必填項’, trigger: ‘change’ }]”

  • 校驗規(guī)則中需要校驗的數(shù)組

加入以下方法可動態(tài)增刪表單:

removeSetting(item) {
  var index = this.form.settings.indexOf(item)
  if (index !== -1) {
    this.form.settings.splice(index, 1)
  }
},
addSetting() {
  this.form.settings.push({
    'name': '',
    'key': '',
    'val': ''
  })
},

實現(xiàn)動態(tài)多個輸入框為行內(nèi)模式,其它為行外模式

效果如圖:

實現(xiàn)思路

el-form 定義 :inline="true" 實現(xiàn)行內(nèi)模式,以便于動態(tài)增加的多個輸入框在同一行顯示;再通過 Layout 布局 將其它比較小的單個輸入框控制在一個行內(nèi),通過 row 和 col 組件,并通過 col 組件的 span 屬性我們就可以自由地組合布局。

實現(xiàn)代碼如下:

<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="120px">
  <el-row>
    <el-col :span="24">
      <el-form-item label="test1" prop="teest1">
        <el-input v-model.trim="form.test1" style="width: 220px" />
      </el-form-item>
    </el-col>
    <el-col :span="24">
      <el-form-item label="test2" prop="test2">
        <el-input v-model.trim="form.test2" style="width: 220px" />
      </el-form-item>
    </el-col>
    <el-col :span="24">
      <el-form-item label="test3" prop="test3">
        <el-input v-model.trim="form.test3" style="width: 220px" />
      </el-form-item>
    </el-col>
    <el-col :span="24">
      <el-form-item v-for="(item, index) in form.settings" :key="index" :label="'設(shè)置' + (index + 1)">
        <el-form-item label="名稱" :prop="'settings.'+index+'.name'" :rules="[{ required: true, message: '必填項', trigger: 'change' }]" label-width="50px">
          <el-input v-model.trim="item.name" style="width: 100px" />
        </el-form-item>
        <el-form-item label="值" :prop="'settings.'+index+'.val'" :rules="[{ required: true, message: '必填項', trigger: 'change' }]" label-width="50px">
          <el-input v-model.trim="item.val" style="width: 100px" />
        </el-form-item>
        <el-form-item label="key" :prop="'settings.'+index+'.key'" :rules="[{ required: true, message: '必填項', trigger: 'change' }]" label-width="50px">
          <el-input v-model.trim="item.key" style="width: 100px" />
        </el-form-item>
        <el-form-item>
          <el-button @click.prevent="removeSetting(item)">刪除</el-button>
        </el-form-item>
      </el-form-item>
    </el-col>
    <el-col :span="24">
      <el-form-item label=" ">
        <el-button icon="el-icon-circle-plus-outline" @click="addSetting()">新增設(shè)置</el-button>
      </el-form-item>
    </el-col>
  </el-row>
</el-form>

到此這篇關(guān)于Element實現(xiàn)動態(tài)增加多個輸入框并校驗的文章就介紹到這了,更多相關(guān)Element動態(tài)增加輸入框并校驗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一篇文章帶你搞懂Vue虛擬Dom與diff算法

    一篇文章帶你搞懂Vue虛擬Dom與diff算法

    這篇文章主要給大家介紹了關(guān)于Vue虛擬Dom與diff算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 在vue中給后臺接口傳的值為數(shù)組的格式代碼

    在vue中給后臺接口傳的值為數(shù)組的格式代碼

    這篇文章主要介紹了在vue中給后臺接口傳的值為數(shù)組的格式代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue實現(xiàn)一個懶加載的樹狀表格實例

    vue實現(xiàn)一個懶加載的樹狀表格實例

    這篇文章主要介紹了vue實現(xiàn)一個懶加載的樹狀表格實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • vue cross-env使用和配置方法

    vue cross-env使用和配置方法

    cross-env 是一個非常實用的 Node.js 包,它允許你跨平臺(Windows, macOS, Linux)使用環(huán)境變量,這對于在不同的操作系統(tǒng)上運(yùn)行腳本時保持一致性非常有用,這篇文章主要介紹了vue cross-env使用和配置方法,需要的朋友可以參考下
    2024-08-08
  • vuejs指令詳解

    vuejs指令詳解

    本文介紹了vuejs指令的相關(guān)知識,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • vue中,在本地緩存中讀寫數(shù)據(jù)的方法

    vue中,在本地緩存中讀寫數(shù)據(jù)的方法

    今天小編就為大家分享一篇vue中,在本地緩存中讀寫數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • ant-design-vue中的table自定義格式渲染解析

    ant-design-vue中的table自定義格式渲染解析

    這篇文章主要介紹了ant-design-vue中的table自定義格式渲染,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Pinia中action使用方法詳解

    Pinia中action使用方法詳解

    Pinia是Vue的存儲庫,它允許您跨組件/頁面共享狀態(tài),下面這篇文章主要給大家介紹了Pinia中action使用方法的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Vue Router初始化路由信息詳解

    Vue Router初始化路由信息詳解

    這篇文章主要為大家詳細(xì)介紹了Vue Router初始化路由信息的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2023-11-11
  • vue的keep-alive中使用EventBus的方法

    vue的keep-alive中使用EventBus的方法

    keep-alive是Vue提供的一個抽象組件,用來對組件進(jìn)行緩存,從而節(jié)省性能,由于是一個抽象組件,所以在頁面渲染完畢后不會被渲染成一個DOM元素。這篇文章主要介紹了vue的keep-alive中使用EventBus的方法,需要的朋友可以參考下
    2019-04-04

最新評論