亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

elementui prop 動態驗證

elementui prop 動態驗證

墨色風雨 2018-08-18 20:20:16
 <!-- 需要一個動態的input 可以讓用戶根據不同資料填寫,  -->  <!-- useCustom  是一個動態數組里面 a, b, c, -->    <div v-for="(uc, index) in useCustom" :key="index">      <el-form-item >         <!-- msgShopName是個對象,  通過拿到uc值 來動態渲染出input框 a框, b框, c框-->         <el-input v-model="msgForm.msgShopName[uc]" :placeholder="uc" style="margin-left: 4px; width: 200px" required></el-input>         </el-form-item>    </div>我的需求很簡單, 為每個動態渲染出來的 input 增加驗證,讓他變成必填...1.簡單試過在input 框上 直接寫上required, 來讓input框變成必填, 結果無效. 2.試過直接增加rules 規則. 不過效果不好,驗證不準確.我遇到的問題是: prop 一般要與 被驗證的控件 一致, 但我這邊因為 被驗證的控件msgShopName是不固定的,讓prop不能與msgShopName保持一致.變成無法控制到.問題出現的環境背景及自己嘗試過哪些方法相關代碼// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)你期待的結果是什么?實際看到的錯誤信息又是什么?
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

看你代碼 useCustom循環出來的uc不就是對象的屬性名嗎?提前配置好全部rules,直接把ucel-form-item當作prop不行嗎?
或者也可以比較傻的直接把rules定義在循環中的el-form-item

<el-form-item
    prop="email"
    label="郵箱"
    :rules="[
      { required: true, message: '請輸入郵箱地址', trigger: 'blur' },
      { type: 'email', message: '請輸入正確的郵箱地址', trigger: ['blur', 'change'] }
    ]"
  >

剛抽空按你邏輯寫了段測試代碼,是可行的,能正常驗證

template

<el-form :model="msgForm.msgShopName">
  <div v-for="(uc, index) in useCustom" :key="index">
    <el-form-item
        :prop="uc"
        :rules="[ { required: true, trigger: 'blur' } ]">
      <!-- msgShopName是個對象,  通過拿到uc值 來動態渲染出input框 a框, b框, c框-->
      <el-input v-model="msgForm.msgShopName[uc]" :placeholder="uc" style="margin-left: 4px; width: 200px"></el-input>
    </el-form-item>
  </div></el-form>

script

export default {
  data() {
    return {
      useCustom: ['name', 'mobile'],
      msgForm: {
        msgShopName: {}
      },
    }
  }
}


查看完整回答
反對 回復 2018-08-19
  • 1 回答
  • 0 關注
  • 3780 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號