# 验证/rules
字段rules, 格式:
rules: {
required: true, // 默认为false,支持动态解析
emptyMsg: "不能为空", // 为空的错误提示;默认值:不能为空
showRequired: true, // 是否显示星号,当required为true有用;常用于数组内容,可能太多"星号"不好看
emptyMethod: function(options) { // 代替系统的空值检查函数:检查此值是否为空
// 默认是不存在的,不设置则会取系统默认的空值检查函数,见下面“空值”
// 返回true或字符串则表示为空;若返回值为字符串,则是提示的信息,否则取‘emptyMsg’
// 其它代表不为空
return true;
},
// checks可以是以下写成的数组 如 checks: [{...}, {...}]
checks: { // handler函数(非箭头函数时): this指向form
// 注: true会转换为input事件
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, // vue中class接受的类型:字符串,对象,数组
style: undefined // 类型:对象
}
handler(或emptyMethod) => options包含的属性:
value
: 需要检查的组件的值,表单的值可以通过this取出pathKey
: 需要检查的组件的路径idxChain
: 需要检查的组件所要数组所组成的id 如: 1,2index
:组件处于数组的子节点(非孙子)时的索引,其余的返回-1instance
:表单实例(当handler为箭头函数,若需要可用instance取出表单实例使用)
# 实例
# trigger
trigger是指验证时机,当其为空字符串
时则是提交(form.checkAll())时再验证。
# 空值
空值有哪些
: 当不设置emptyMethod
,则系统认为这些都为空值:undefined
,null
, 空对象{}
, 空数组[]
, 空字符串""
rules.required
和rules.checks
是一个互补的关系,rules.required
是检查空值
;rules.checks
是检查有值
(也就是说空值是不会进入检查),系统的检查顺序是:先判断是否有值,有值的话再执行rules.checks
。应用场景如:当输入一个手机号码,要么不输入,要么输入正确;若想手机号码不可为空,此需要设置rules.required为true。