zoukankan      html  css  js  c++  java
  • 关于form中的rules对变量设置多个校验规则,执行顺序

    实现效果:

     

     

     如上所示,对活动名称设置了三个校验规则,分别为必填项,长度为3~4个字符,需要为数字/英文字母。

    代码如下:

    1.html:

    <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
      <el-form-item label="活动名称" prop="name">
        <el-input v-model="ruleForm.name"></el-input>
      </el-form-item>
    </el-form>
    

    2.js:

    var validateCode = (rule, value, callback) => {
      const age= /^[0-9a-zA-Z]+$/;
      if (value && !age.test(value)) {
        callback(new Error('格式不正确,需要为数字或是英文字母'));
      }else{
        callback();
      }
    };
    
    rules: {
      name: [
        { min: 3, max: 4, message: '长度在 3 到 4 个字符', trigger: ['blur', 'change'] },
        { validator: validateCode, trigger: ['blur', 'change'] },
        { required: true, message: '请输入活动名称', trigger: 'blur' },
      ]
    },

    在rules中对name设置了校验规则,共有三个,按顺序:长度在3到4个字符,满足需要数字或是英文字母,必填。

    实际执行顺序:

    1.先判断是否对它设置了必填,若是设置了为必填项,则先做该条规则校验,不管该条规则顺序排在第几位;

    2.接下来若是在输入框中填写了数据,则按照下面的规则顺序进行一个个校验,均满足条件才可通过。

    3.若是设置了为非必填,则不填可以通过,若是填写的话,还是按照编写的规则顺序一个个校验,均满足条件才可通过。

    补充:

    1.通过require值设置为true/false,来区分设置为必填还是非必填,设置了require为true的该条校验规则永远是最先执行。

  • 相关阅读:
    mongoDB安装配置
    linux-批量修改目录下后缀shell
    备份mysql的shell
    mysql_DML_索引、视图
    mysql_存储过程
    mysql_备份_mysqldump
    mysql_DCL_grant/revoke
    mysql_DML_select_子查询
    mysql_DML_select_union
    mysql_DML_select_聚合join
  • 原文地址:https://www.cnblogs.com/5201314m/p/13131052.html
Copyright © 2011-2022 走看看