亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

v-for中動態校驗el-form表單項怎么用

發布時間:2022-05-30 09:28:00 來源:億速云 閱讀:209 作者:iii 欄目:開發技術

這篇文章主要講解了“v-for中動態校驗el-form表單項怎么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“v-for中動態校驗el-form表單項怎么用”吧!

問題描述

在項目開發中,我們經常會遇到表單保存的功能,在表單保存前,常常需要做表單必填項的校驗,校驗通過以后才去發請求保存表單數據。

但是,這個表單如果是動態的,即:可以新增相同的表單。比如這個表單有輸入框和下拉框需要校驗,點擊添加表格按鈕,再新增一個相同的表單,同樣新的這個表單對應的輸入框和下拉框也需要校驗。

我們先看一下效果圖:

效果圖

v-for中動態校驗el-form表單項怎么用

代碼思路

  • 表單的主數據是要寫成對象形式 :model="ruleForm" 不過既然是要動態的,肯定是要循環呢,所以,可以寫成這樣:

ruleForm: {
        // 動態循環項數組
        formItemArr: [
          {
            name: "",
            gender: "",
          },
        ],
      },
  • 點擊添加表格的時候,就可以直接push對應項就行啦,即,這樣:

// 添加一個表格
    addForm() {
      let itemObj = {
        name: "",
        gender: "",
      };
      this.ruleForm.formItemArr.push(itemObj);
    },
  • 重點來嘍,因為是循環的,所以prop也要變成動態的了,要拼接上index,就變成根據索引去找對應的校驗項了,即為::prop="'formItemArr.' + index + '.name'" ,這樣的話,就變成了:prop="formItemArr.0.name"prop="formItemArr.1.name"prop="formItemArr.2.name" ... 這樣的話,就可以照顧到每一項中的每一個綁定的值了,校驗就不會漏掉

  • 校驗規則寫成內聯就可以觸發校驗函數this.$refs["ruleForm"].validate((val) => {})

<el-form-item
          label="姓名"
          :prop="'formItemArr.' + index + '.name'"
          :rules="{
            required: true,
            message: '請填寫',
            trigger: 'blur',
          }"
        >
        ......

完整代碼

演示的話,大家直接復制粘貼即可

<template>
  <div class="box">
    <el-button @click="addForm" size="mini" type="primary" plain
      >添加表格</el-button
    >
    <el-button @click="saveForm" size="mini" type="primary" plain
      >保存表格</el-button
    >
    <br />
    <br />
    <el-form
      :model="ruleForm"
      ref="ruleForm"
      label-width="100px"
      class="formform"
    >
      <div
        class="formformItemClass"
        v-for="(item, index) in ruleForm.formItemArr"
        :key="index"
      >
        <el-form-item
          label="姓名"
          :prop="'formItemArr.' + index + '.name'"
          :rules="{
            required: true,
            message: '請填寫',
            trigger: 'blur',
          }"
        >
          <el-input
            size="mini"
            v-model.trim="item.name"
            placeholder="請填寫"
            
          ></el-input>
        </el-form-item>
        <el-form-item
          label="性別"
          :prop="'formItemArr.' + index + '.gender'"
          :rules="{
            required: true,
            message: '請選擇',
            trigger: 'change',
          }"
        >
          <el-select
            clearable
            size="mini"
            v-model="item.gender"
            placeholder="請選擇"
          >
            <el-option label="男" value="男"></el-option>
            <el-option label="女" value="女"></el-option>
          </el-select>
        </el-form-item>
      </div>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      ruleForm: {
        // 動態循環項數組
        formItemArr: [
          {
            name: "",
            gender: "",
          },
        ],
      },
    };
  },
  methods: {
    // 添加一個表格
    addForm() {
      let itemObj = {
        name: "",
        gender: "",
      };
      this.ruleForm.formItemArr.push(itemObj);
    },
    // 保存表格
    saveForm() {
      this.$refs["ruleForm"].validate((val) => {
        if (val) {
          console.log("符合要求,保存成功", this.ruleForm);
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    },
  },
};
</script>

<style lang="less" scoped>
.box {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 24px;
  .formform {
    width: 360px;
    .formformItemClass {
      padding-top: 24px;
      border: 2px dashed #ccc;
      margin-bottom: 18px;
    }
  }
}
</style>

感謝各位的閱讀,以上就是“v-for中動態校驗el-form表單項怎么用”的內容了,經過本文的學習后,相信大家對v-for中動態校驗el-form表單項怎么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合作市| 冕宁县| 凌海市| 东乡族自治县| 阜平县| 乃东县| 阿拉善左旗| 安丘市| 宜城市| 安宁市| 贡嘎县| 台湾省| 额尔古纳市| 天水市| 宣化县| 洪泽县| 开封市| 孝昌县| 固始县| 西昌市| 小金县| 天等县| 临沭县| 宁国市| 迁西县| 伊宁市| 京山县| 航空| 玉屏| 永德县| 唐河县| 秀山| 宜宾市| 凤台县| 临夏县| 沈丘县| 宁晋县| 永平县| 克拉玛依市| 苗栗县| 体育|