https://jsfiddle.net/gmve9d3p/122/
对于表单中的 a, b 两个字段,都加了自定义校验规则, a字段对应的是el-input
,b字段对应的是普通的input
重现步骤:
预期:
b的自定义校验规则应该和a一样触发,而不是等到submit中完整校验的时候触发
普通的input无法做校验
@baiyaaaaa 这是为什么呢,另外,input不支持lazy,这个也比较麻烦
还有一个,这个校验组件多规则校验的时候不是遇到一条错误就停止,而是每一条执行一次。。。这逻辑似乎有问题
仅仅有 el-input
的类名,并不包含 el-input
的逻辑啊
@Leopoldthecoder 但是,这个校验组件不是校验一个JavaScript的object吗?
好像我似乎明白了,因为这个校验组件要靠捕获value更改来触发的是吗?这就是我之前想说的,如果把每一个form字段的验证结果都映射成一个computed属性,然后在computed里面执行校验规则,这样Vue可以帮我们处理触发时机的问题,同时可以解决验证规则中字段依赖的问题
提供一下正则验证的写法吧,大概就是这样:
文档上确实语焉不详,这个基础的用法也没有实例。
参照这里:https://github.com/yiminghe/async-validator/issues/20
不过上面这个文档写的也不详细。
rules : {
name :[
{ required: true, message: '请填写笔名', trigger: 'blur' },
{ pattern:/^[\a-\z\A-\Z0-9\u4E00-\u9FA5]{2,20}$/, message: '2-20字汉字英文或数字,不包含特殊字符', trigger: 'blur' }
],
phone : [
{ required: true, message: '请填写手机号', trigger: 'blur' },
{ pattern:/^1\d{10}$/, message : '请填写正确的手机号码', trigger: 'blur' }
],
qq : [
{ required: true, message: '请填写常用QQ', trigger: 'blur' },
{ pattern:/^[1-9]\d{3,11}$/, message : '请填写正确QQ号码', trigger: 'blur' }
]
}
Most helpful comment
提供一下正则验证的写法吧,大概就是这样:
文档上确实语焉不详,这个基础的用法也没有实例。
参照这里:https://github.com/yiminghe/async-validator/issues/20
不过上面这个文档写的也不详细。