首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法验证el-select elementUI

无法验证el-select elementUI
EN

Stack Overflow用户
提问于 2020-04-21 16:52:46
回答 1查看 1.5K关注 0票数 1

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

在我的模板中:

代码语言:javascript
复制
 <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>

在数据中:

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

在我的方法中:

代码语言:javascript
复制
validateDropdown() {
            this.$refs.form.validateField('fieldProp')
        }

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

代码语言:javascript
复制
   submit() {
            this.validateDropdown(); 
        }

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-21 17:14:35

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

在您的例子中,您应该向表单添加一个modelrules属性,然后使用适当的validate方法。

示例代码:

代码语言:javascript
复制
<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>
代码语言:javascript
复制
   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'

代码语言:javascript
复制
submit() {
  this.$refs.form.validate((valid) => {
    if (valid) {
      // todo
    } else {
      // todo
    }
  });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61339521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档