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

vue中elementUI表單循環(huán)驗(yàn)證方式

 更新時(shí)間:2023年10月16日 14:48:14   作者:EstherNi  
這篇文章主要介紹了vue中elementUI表單循環(huán)驗(yàn)證方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue中elementUI表單循環(huán)驗(yàn)證

在這里插入圖片描述

進(jìn)行驗(yàn)證的步驟

1、表單el-form 添加 :model="form" ref="form" :rules="rules",注意是 :model="form"不是v-model,而后每個(gè)el-form-item綁定prop

2、不循環(huán)的示例在官網(wǎng)可看

3、循環(huán)表單的驗(yàn)證:

  • 3-1、el-form-item 綁定 :prop="`addList[${index}][orderNum]`" :rules="rules.orderNum"     

注意不循環(huán)的表單每個(gè)el-form-item 不需要單獨(dú)加:rules="rules.orderNum"     

然后prop的名字要與data中的rules數(shù)組對(duì)象的名稱(chēng)相同即可

  •  3-2、js判斷時(shí),此處的orderNum也就是data中的rules中的名稱(chēng)
 `this.$refs.form.validateField('orderNum', (valid) => {
      //valid返回的是規(guī)則集中寫(xiě)的錯(cuò)誤提示信息,如果滿(mǎn)足條件,返回的就是空
      if (valid) {
         return this.$refs["form"].clearValidate('orderNum');
        }
   });`
<el-form class="demo-form" :model="form" ref="form" :rules="rules" label-width="100px">
      <el-col :span="12">
        <el-form-item label="名稱(chēng):" prop="name">
          <el-input clearable v-model="form.name" placeholder="請(qǐng)輸入考評(píng)名稱(chēng)"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="選擇:" prop="indexId">
          <el-select clearable v-model="form.indexId" placeholder="請(qǐng)選擇指標(biāo)" style="width:100%;" @change="removeHintChange(form.indexId,'indexId')">
            <el-option v-for="item in targetOptions" :key="item.value" :label="item.label" :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
      </el-col>
      <el-col class="wrap">
        <div class="step" v-for="(item, index) in form.addList" :key="index">
          <div class="stepName">
            步驟{{index+1}}:
          </div>
          <el-form-item label="考試考試考試考試:" class="evaluationPerson" :prop="`addList[${index}][personNameId]`" :rules="rules.personNameId">
            <el-select clearable v-model="item.personNameId" placeholder="請(qǐng)選擇人員" @change="removeHintChange(item.personNameId,`addList[${index}][personNameId]`)">
              <el-option v-for="item in personOptions" :key="item.value" :label="item.label" :value="{value:item.value,label:item.label}">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="順序:" class="order" :prop="`addList[${index}][orderNum]`" :rules="rules.orderNum">
            <el-input clearable v-model="item.orderNum" @input="changeMemberId($event,index,0)"></el-input>
          </el-form-item>
          <el-form-item label="順1:" class="weight" :prop="`addList[${index}][ratio]`" :rules="rules.ratio">
            <el-input clearable v-model="item.ratio" @input="changeMemberId($event,index,1)"></el-input>
            <div class="percent">%</div>
          </el-form-item>
          <el-form-item label="備注:" class="remarks" :prop="`addList[${index}][remark]`" :rules="rules.remark">
            <el-input clearable type="textarea" v-model="item.remark" placeholder="部門(mén)負(fù)責(zé)人"></el-input>
            <div class="iconPic" @click="deleteInformation(index)"><i class="el-icon-delete-solid"></i></div>
          </el-form-item>
        </div>
      </el-col>
      <el-col class="addInfor">
        <el-button type="primary" plain size="mini" @click="addInformation">
          <i class="el-icon-plus"></i>添加
        </el-button>
      </el-col>
    </el-form>
data() {
    return {
      dialogShow1: true,
      // 指標(biāo)選擇
      indexId: "",
      targetOptions: [{ label: "11", value: 1 }],
      // 考評(píng)人員
      personNameId: "",
      personOptions: [{ label: "22", value: 1 }],
      form: {
        indexId: "",
        // 表單字段列表
        addList: [{ personNameId: "", orderNum: "", ratio: "", remark: "" }],
      },
      // 校驗(yàn)規(guī)則
      rules: {
        name: [{ required: true, message: "請(qǐng)輸入名稱(chēng)", trigger: "blur" }],
        indexId: [
          { required: true, message: "請(qǐng)選擇", trigger: "blur" },
        ],
        personNameId: [
          { required: true, message: "請(qǐng)選擇(人員)", trigger: "blur" },
        ],
        orderNum: [{ required: true, message: "請(qǐng)輸入順序", trigger: "blur" }],
        ratio: [{ required: true, message: "請(qǐng)輸入權(quán)重", trigger: "blur" }],
        remark: [{ required: true, message: "請(qǐng)輸入備注", trigger: "blur" }],
      },
    };
  },
// 限制有的輸入框只能輸入數(shù)字
    changeMemberId(val, index, num) {
      if (num === 0) {
        this.form.addList[index].orderNum = val.replace(/[^\d]/g, "");
      } else if (num === 1) {
        this.form.addList[index].ratio = val.replace(/[^\d]/g, "");
      }
    },
    // 強(qiáng)制去掉驗(yàn)證
    removeHintChange(value, name) {
      if (value != null || "" || []) {
        this.$refs.form.validateField(name, (valid) => {
          //valid返回的是規(guī)則集中寫(xiě)的錯(cuò)誤提示信息,如果滿(mǎn)足條件,返回的就是空
          if (valid) {
            return this.$refs["form"].clearValidate(name);
          }
        });
      }
    },
    // 添加步驟
    addInformation() {
      this.form.addList.push({
        personNameId: "",
        orderNum: "",
        ratio: "",
        remark: "",
      });
    },
    // 彈窗 - 刪除信息
    deleteInformation(val) {
      if (this.form.addList.length > 1) {
        this.form.addList.splice(val, 1);
      } else {
        this.$message({
          message: "不可全部刪除,最少一條新增數(shù)據(jù)信息",
          type: "warning",
        });
      }
    },

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue刷新子組件、重置組件以及重新加載子組件項(xiàng)目實(shí)戰(zhàn)記錄

    vue刷新子組件、重置組件以及重新加載子組件項(xiàng)目實(shí)戰(zhàn)記錄

    在vue開(kāi)發(fā)中出于各種目的,我們常常需要讓組件重新加載渲染,這篇文章主要給大家介紹了關(guān)于vue刷新子組件、重置組件以及重新加載子組件的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Vue實(shí)現(xiàn)菜單切換功能

    Vue實(shí)現(xiàn)菜單切換功能

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)菜單切換功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Vue 中數(shù)據(jù)丟失響應(yīng)式的原因和解決方案

    Vue 中數(shù)據(jù)丟失響應(yīng)式的原因和解決方案

    本文給大家介紹Vue中數(shù)據(jù)丟失響應(yīng)式的原因和解決方案,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2026-04-04
  • vue(2.x,3.0)配置跨域代理

    vue(2.x,3.0)配置跨域代理

    這篇文章主要介紹了vue(2.x,3.0)配置跨域代理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vuejs router history 配置到iis的方法

    vuejs router history 配置到iis的方法

    今天小編就為大家分享一篇vuejs router history 配置到iis的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue中bus的使用及踩坑解決

    vue中bus的使用及踩坑解決

    這篇文章主要為大家詳細(xì)介紹了vue中bus的相關(guān)使用以及涉及到的問(wèn)題與解決,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-08-08
  • Vue2.x通用條件搜索組件的封裝及應(yīng)用詳解

    Vue2.x通用條件搜索組件的封裝及應(yīng)用詳解

    這篇文章主要為大家詳細(xì)介紹了Vue2.x通用條件搜索組件的封裝及應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • vscode中vue-cli項(xiàng)目es-lint的配置方法

    vscode中vue-cli項(xiàng)目es-lint的配置方法

    本文主要介紹vscode中 vue項(xiàng)目es-lint的配置方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的的朋友參考下吧
    2018-07-07
  • Vue項(xiàng)目總結(jié)之webpack常規(guī)打包優(yōu)化方案

    Vue項(xiàng)目總結(jié)之webpack常規(guī)打包優(yōu)化方案

    這篇文章主要介紹了vue項(xiàng)目總結(jié)之webpack常規(guī)打包優(yōu)化方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • 如何使用 Vuex的入門(mén)教程

    如何使用 Vuex的入門(mén)教程

    在vue中當(dāng)我們管理數(shù)據(jù)的時(shí)候比較亂,我們要用到下面的這個(gè)庫(kù),本文主要介紹了如何使用 Vuex的入門(mén)教程,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-02-02

最新評(píng)論

泸溪县| 瑞丽市| 玛沁县| 运城市| 怀柔区| 诸城市| 巨鹿县| 崇阳县| 潞西市| 泸西县| 巴马| 云南省| 绥滨县| 南宁市| 沙雅县| 南昌县| 祁东县| 西充县| 福贡县| 亳州市| 宁化县| 丹棱县| 枣庄市| 渑池县| 云梦县| 灌阳县| 临海市| 洮南市| 启东市| 临西县| 应用必备| 嵊州市| 景宁| 镇巴县| 宁陵县| 靖远县| 泾川县| 藁城市| 榆中县| 泰州市| 利辛县|