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

Element實(shí)現(xiàn)動(dòng)態(tài)增加多個(gè)輸入框并校驗(yàn)

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

前言

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

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

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

實(shí)現(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: '必填項(xiàng)', 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: '必填項(xiàng)', 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: '必填項(xiàng)', 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>

實(shí)現(xiàn)思路

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

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

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

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

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

加入以下方法可動(dòng)態(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': ''
  })
},

實(shí)現(xiàn)動(dòng)態(tài)多個(gè)輸入框?yàn)樾袃?nèi)模式,其它為行外模式

效果如圖:

實(shí)現(xiàn)思路

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

實(shí)現(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: '必填項(xiàng)', 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: '必填項(xiàng)', 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: '必填項(xiàng)', 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實(shí)現(xiàn)動(dòng)態(tài)增加多個(gè)輸入框并校驗(yàn)的文章就介紹到這了,更多相關(guān)Element動(dòng)態(tài)增加輸入框并校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3??mark.js?實(shí)現(xiàn)文字標(biāo)注功能(案例代碼)

    vue3??mark.js?實(shí)現(xiàn)文字標(biāo)注功能(案例代碼)

    這篇文章主要介紹了vue3??mark.js?實(shí)現(xiàn)文字標(biāo)注功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • vue計(jì)算屬性computed--getter和setter用法

    vue計(jì)算屬性computed--getter和setter用法

    這篇文章主要介紹了vue計(jì)算屬性computed--getter和setter用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue.js中實(shí)現(xiàn)密碼修改及頁面跳轉(zhuǎn)和刷新的完整指南

    Vue.js中實(shí)現(xiàn)密碼修改及頁面跳轉(zhuǎn)和刷新的完整指南

    在現(xiàn)代Web應(yīng)用中,用戶賬戶管理是一個(gè)核心功能,其中密碼修改是一個(gè)常見的需求,本文將詳細(xì)介紹如何在Vue.js應(yīng)用中實(shí)現(xiàn)用戶密碼修改功能,并在成功后跳轉(zhuǎn)到登錄頁面并刷新該頁面,需要的朋友可以參考下
    2024-12-12
  • vue3通過ref獲取子組件defineExpose的數(shù)據(jù)和方法

    vue3通過ref獲取子組件defineExpose的數(shù)據(jù)和方法

    defineExpose是Vue3中新增的選項(xiàng),用于向父組件暴露子組件內(nèi)部的屬性和方法,通過defineExpose,子組件可以主動(dòng)控制哪些屬性和方法可以被父組件訪問,本文主要介紹了vue3通過ref獲取子組件defineExpose的數(shù)據(jù)和方法,需要的朋友可以參考下
    2023-10-10
  • vue中對(duì)象的賦值Object.assign({}, row)方式

    vue中對(duì)象的賦值Object.assign({}, row)方式

    這篇文章主要介紹了vue中對(duì)象的賦值Object.assign({}, row)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 如何利用vue-cli監(jiān)測(cè)webpack打包與啟動(dòng)時(shí)長(zhǎng)

    如何利用vue-cli監(jiān)測(cè)webpack打包與啟動(dòng)時(shí)長(zhǎng)

    這篇文章主要給大家介紹了關(guān)于如何利用vue-cli監(jiān)測(cè)webpack打包與啟動(dòng)時(shí)長(zhǎng)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • vue中Vue.set()的使用以及對(duì)其進(jìn)行深入解析

    vue中Vue.set()的使用以及對(duì)其進(jìn)行深入解析

    vue不允許在已經(jīng)創(chuàng)建的實(shí)例上動(dòng)態(tài)添加新的根級(jí)響應(yīng)式屬性,不過可以使用Vue.set()方法將響應(yīng)式屬性添加到嵌套的對(duì)象上,下面這篇文章主要給大家介紹了關(guān)于vue中Vue.set()的使用以及對(duì)其進(jìn)行深入解析的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Vue nextTick的原理解析

    Vue nextTick的原理解析

    這篇文章主要介紹了Vue nextTick的原理解析,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-04-04
  • Vue源碼分析之Vue實(shí)例初始化詳解

    Vue源碼分析之Vue實(shí)例初始化詳解

    這篇文章主要給大家介紹了關(guān)于Vue源碼分析之Vue實(shí)例初始化的相關(guān)資料,需要的朋友可以參考下
    2019-08-08
  • 解決vue中l(wèi)ess的使用問題

    解決vue中l(wèi)ess的使用問題

    這篇文章主要介紹了解決vue中l(wèi)ess的使用問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11

最新評(píng)論

平罗县| 静宁县| 达孜县| 儋州市| 南溪县| 新余市| 铜山县| 沁水县| 惠州市| 松江区| 通海县| 宣恩县| 西城区| 思茅市| 武乡县| 祁门县| 安岳县| 沙湾县| 柘荣县| 恩平市| 海晏县| 汉沽区| 图们市| 绥德县| 萨迦县| 阜新| 连山| 长岭县| 牡丹江市| 阳春市| 永昌县| 边坝县| 萨嘎县| 夹江县| 炎陵县| 南部县| 长岛县| 宝清县| 隆德县| 紫金县| 威海市|