# 验证/rules

字段rules, 格式:

rules: {
  required: true,   // 默认为false,支持动态解析
  emptyMsg: "不能为空",  // 为空的错误提示;默认值:不能为空
  showRequired: true,   // v1.6.4;是否显示星号,当required为true有用;常用于数组内容,可能太多"星号"不好看
  emptyMethod: function(options) { // v1.6.3;代替系统的空值检查函数:检查此值是否为空
    // 默认是不存在的,不设置则会取系统默认的空值检查函数,见下面“空值”
    // 返回true或字符串则表示为空;若返回值为字符串,则是提示的信息,否则取‘emptyMsg’
    // 其它代表不为空
    return true;
  },  
  // checks可以是以下写成的数组 如 checks: [{...}, {...}]
  checks: {    // handler函数(非箭头函数时): this指向form
    // 注: true会转换为input事件(v1.8.1增加)
    trigger: "change",  // 检查的时机,多个时可写成"input change"或["change", true]
    handler: function(options) { // options => {value, pathKey, idxChain, index, instance}
      // 返回true表示验证通过;其它值都认为验证不通过
      // 若返回值为字符串,则是提示的信息,否则取‘errMsg’
      return true;
    }
  },
  errMsg: "格式不对", // checks后的错误信息提示;默认值:格式不对
  // class和style是错误信息的样式补充,支持动态解析:一般用于表单数组的错误信息
  class: undefined, // v1.6.2;vue中class接受的类型:字符串,对象,数组
  style: undefined  // v1.6.2;类型:对象
}

handler(或emptyMethod) => options包含的属性:

  • value: 需要检查的组件的值,表单的值可以通过this取出
  • pathKey: 需要检查的组件的路径
  • idxChain: 需要检查的组件所要数组所组成的id 如: 1,2
  • index:组件处于数组的子节点(非孙子)时的索引,其余的返回-1
  • instance1.7.8:表单实例(当handler为箭头函数,若需要可用instance取出表单实例使用)

# 实例

# trigger

trigger是指验证时机,当其为空字符串时则是提交(form.checkAll())时再验证。

# 空值

  • 空值有哪些: 当不设置emptyMethod,则系统认为这些都为空值:undefined, null, 空对象{}, 空数组[], 空字符串""

rules.requiredrules.checks是一个互补的关系,rules.required是检查空值rules.checks是检查有值(也就是说空值是不会进入检查),系统的检查顺序是:先判断是否有值,有值的话再执行rules.checks。应用场景如:当输入一个手机号码,要么不输入,要么输入正确;若想手机号码不可为空,此需要设置rules.required为true。