@@ -47,32 +47,43 @@ class WeValidator {
4747 static RULES = { }
4848
4949 /**
50- * 动态添加验证规则(全局)
50+ * 动态添加验证规则
5151 * @param {string } ruleName 规则名称
52- * @param {regexp|function } ruleValue 验证规则
52+ * @param {object } ruleOption 规则配置
53+ * @param {string } [ruleOption.message] 默认错误提示文字
54+ * @param {regexp|function } [ruleOption.rule] 验证规则
5355 */
54- static addRule = function ( ruleName , ruleValue ) {
55- WeValidator . RULES [ ruleName ] = ruleValue
56+ static addRule = function ( ruleName , ruleOption ) {
57+ WeValidator . RULES [ ruleName ] = ruleOption
5658 }
5759
5860 /**
5961 * 验证单个字段数据
6062 * @param {string } ruleName 规则名称
6163 * @param {string } value 要验证的值
6264 * @param {any } param 传递的验证参数
65+ * @param {boolean } skip 未填跳过校验,仅供内部使用
6366 */
64- static checkValue = function ( ruleName , value , param ) {
67+ static checkValue = function ( ruleName , value , param , skip ) {
6568 let rule = WeValidator . RULES [ ruleName ] . rule
6669
6770 if ( isRegExp ( rule ) ) {
68- return ! requiredFn ( value ) || rule . test ( value )
71+ if ( skip ) {
72+ return ! requiredFn ( value ) || rule . test ( value )
73+ } else {
74+ return rule . test ( value )
75+ }
6976 }
7077
7178 if ( isFunction ( rule ) ) {
7279 if ( ruleName === 'required' ) {
7380 return requiredFn ( value )
7481 } else {
75- return ! requiredFn ( value ) || rule . call ( this , value , param )
82+ if ( skip ) {
83+ return ! requiredFn ( value ) || rule . call ( this , value , param )
84+ } else {
85+ return rule . call ( this , value , param )
86+ }
7687 }
7788 }
7889 }
@@ -212,7 +223,7 @@ class WeValidator {
212223 ruleParam = ruleParam . call ( this , value )
213224 }
214225
215- let isFieldValid = WeValidator . checkValue . call ( this , ruleName , value , ruleParam )
226+ let isFieldValid = WeValidator . checkValue . call ( this , ruleName , value , ruleParam , true )
216227
217228 if ( ! isFieldValid ) {
218229 // 验证不通过
@@ -237,7 +248,7 @@ class WeValidator {
237248 }
238249
239250 if ( hasError ) {
240- if ( multiCheck ) {
251+ if ( multiCheck && showMessage ) {
241252 this . _showErrorMessage ( errorData , onMessage )
242253 }
243254 return false
0 commit comments