2021-09-09 element el-input自定義驗證

forEach循環(huán)input輸入項目,限制不能為空

image.png
// 數(shù)據(jù)結(jié)構(gòu)
  data() {
    return {
        collapseActiveKey:['0'],
        listCompetitor: [
          {
            Competitor: undefined,
            CompetitorPrice: undefined,
            CompetitorAllocation: undefined,
          }
        ] //競爭對手
      }
    }

// 頁面布局
<el-collapse v-model="collapseActiveKey">
  <el-collapse-item
    v-for="(item, index) in formData.listCompetitor"
    :key="index.toString()"
    :name="index.toString()">
    <template slot="title">
      <div class="detailTitle">
        <div>
          <el-tooltip
            v-if="parseInt(index + 1) == formData.listCompetitor.length" content="添加">
            <i class="el-icon-circle-plus-outline" @click="addCompetitor(index)" />
          </el-tooltip>
          <el-tooltip v-if="formData.listCompetitor.length > 1" content="刪除">
            <i class="el-icon-delete" @click="deleteCompetitor(index)" />
          </el-tooltip>
        </div>
      </div>
    </template>
    <el-row :gutter="15">
      <el-col :span="8">
        <el-form-item class="is-required" label="競爭對手" :prop="'Competitor'+index" :rules="[{validator: (a, b, c) =>validateDetailForm(a, b, c, index, 'Competitor'),trigger: 'blur',}]">
          <el-input v-model="item.Competitor" placeholder="請輸入競爭對手" clearable style="width: 100%;">
          </el-input>
        </el-form-item>
      </el-col>
      <el-col :span="8">
        <el-form-item class="is-required" label="對手價格" :prop="'CompetitorPrice'+index" :rules="[{validator: (a, b, c) =>validateDetailForm(a, b, c, index, 'CompetitorPrice'),trigger: 'blur',}]">
          <el-input-number controls-position="right" :min="0.01" :step="0.01" v-model="item.CompetitorPrice" placeholder="請輸入對手價格" clearable style="width: 100%;">
          </el-input-number>
        </el-form-item>
      </el-col>
      <el-col :span="8">
        <el-form-item class="is-required" label="對手份額" :prop="'CompetitorAllocation'+index" :rules="[{validator: (a, b, c) =>validateDetailForm(a, b, c, index, 'CompetitorAllocation'),trigger: 'blur',}]">
          <el-input-number controls-position="right" :min="0.01" :step="0.01" v-model="item.CompetitorAllocation" placeholder="請輸入對手份額" clearable style="width: 100%;">
          </el-input-number>
        </el-form-item>
      </el-col>
    </el-row>
  </el-collapse-item>
</el-collapse>

    // 校驗函數(shù)競爭對手的校驗
    validateDetailForm(rule, value, callback, index, name) {
      if (!this.formData.listCompetitor[index][name]) {
        callback(new Error('必填項不能為空!'));
      } else {
        callback();
      }
    },

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容