element 动态校验的3中方式[{}] ,‘ ‘, [ ]


<el-form :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="100px" class="demo-dynamic">
  <el-form-item
  // 1
    prop="email"
    
    label="邮箱"
    :rules="[
      { required: true, message: '请输入邮箱地址', trigger: 'blur' },
      { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
    ]"
  >
    <el-input v-model="dynamicValidateForm.email"></el-input>
  </el-form-item>
  
  <el-form-item
    v-for="(domain, index) in dynamicValidateForm.domains"
    :label="'域名' + index"
    :key="domain.key"
    // 2
    :prop="'domains.' + index + '.value'"
    
    :rules="{
      required: true, message: '域名不能为空', trigger: 'blur'
    }"
  >
    <el-input v-model="domain.value"></el-input><el-button @click.prevent="removeDomain(domain)">删除</el-button>
  </el-form-item>


<el-form-item style="margin-left:0px" 
// 3
:prop="'otherUsers[' + index +']'" 

 :rules="[{ required: true, message: '此项不能为空', trigger: 'change' }]">
    <el-select v-model="from.otherUsers[index]" filterable clearable>
        <el-option v-for="item in allOnJob" :key="item.employeeId+'q'" :label="item.nameAndDepartment" :value="item.employeeId" />
    </el-select>
 </el-form-item>
data() {
      return {
        dynamicValidateForm: {
           email: '', // 1
          domains: [{ value: '' }],  // 2
          data:[  ] // 3
        }
      };
    },
<el-form-item label=": " label-width="20px" :prop="'productName.'+ index + '.category_value'" :rules="{ validator:(rule, value, cb) => answerFValue(rule, value, cb, index), trigger: 'blur' }">
      <el-input v-model="item.category_value" placeholder="请输入属性值" maxlength="30"></el-input>
      </el-form-item>


answerFValue(rule, value, cb, index) {
      let arr =''
      if(this.form.productName.length >1){
        arr = this.form.productName.filter(y => y.category_value === value)
      }
      if(value == ''){
        cb('属性值不能为空')
      } else if(arr.length > 1){
        cb(new Error('属性值不能重复'))
      } else{
        cb()
      }

data() {
   return:form:{
		productName:[{
			category_value:''
		}]
   }
}

版权声明:本文为csstmg原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。