【问题标题】:Cannot validate el-select elementUI无法验证 el-select elementUI
【发布时间】:2020-08-03 23:06:05
【问题描述】:

我正在尝试使用 el-select 这样的方式创建自定义验证:

在我的模板中:

 <el-form ref="form" >
<el-form-item   prop="fieldProp" >
    <el-select class="dialog-select" v-model="informationForm.age"  @change="validateDropdown" 
    placeholder="age" style="width: 100%"  >
      <el-option label="11" value="1"></el-option>
      <el-option label="22" value="2"></el-option>
    </el-select>
  </el-form-item>
</el-form>

在数据中:

   data() {
        let  checkCurrency = (rule, value, callback) => {
            if (!value) {
                return callback(new Error('Please input the age'));
            }
        };
        return {
                fieldProp: [
                    { validator: checkCurrency, trigger: 'change' }
                ]
              }
         } 

在我的方法中:

validateDropdown() {
            this.$refs.form.validateField('fieldProp')
        }

并调用验证方法:在提交中

   submit() {
            this.validateDropdown(); 
        }

但是什么也没发生。请问有什么想法吗?

【问题讨论】:

    标签: validation vue.js element-ui


    【解决方案1】:

    我鼓励您阅读有关(自定义)表单验证的 element ui 文档:https://element.eleme.io/#/en-US/component/form#custom-validation-rules

    在您的情况下,您应该在表单中添加 modelrules 属性,然后使用正确的 validate 方法。

    示例代码:

    <el-form ref="form" :model="informationForm" :rules="rules">
      <el-form-item prop="age" >
        <el-select class="dialog-select" v-model="informationForm.age" placeholder="age" style="width: 100%">
          <el-option label="11" value="1"></el-option>
          <el-option label="22" value="2"></el-option>
        </el-select>
      </el-form-item>
    </el-form>
    
       data() {
            let  checkCurrency = (rule, value, callback) => {
                if (!value) {
                    return callback(new Error('Please input the age'));
                }
            };
            return {
              rules: {
                fieldProp: [
                  { required: true, validator: checkCurrency, trigger: 'change' }
                ]
              }
            }
       }
    

    不需要validateDropdown,因为您的字段已经在每个change 上通过验证:trigger: 'change'

    submit() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          // todo
        } else {
          // todo
        }
      });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 2021-09-15
      • 2020-08-13
      • 2022-01-05
      相关资源
      最近更新 更多