Skip to content

Commit 9800e3a

Browse files
committed
修复:WeValidator.checkValue 校验空字段不符合预期
1 parent ec00aec commit 9800e3a

6 files changed

Lines changed: 27 additions & 16 deletions

File tree

example/mpvue/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"dependencies": {
1313
"mpvue": "^1.0.11",
1414
"vuex": "^3.0.1",
15-
"we-validator": "^2.1.5"
15+
"we-validator": "^2.1.6"
1616
},
1717
"devDependencies": {
1818
"mpvue-loader": "1.0.13",

example/nodejs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
"koa-bodyparser": "^3.2.0",
1111
"koa-router": "^7.4.0",
1212
"koa-views": "^5.2.1",
13-
"we-validator": "^2.1.5"
13+
"we-validator": "^2.1.6"
1414
}
1515
}

example/wechat/js/we-validator.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/we-validator.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "we-validator",
3-
"version": "2.1.5",
3+
"version": "2.1.6",
44
"description": "简单灵活的表单验证插件,支持小程序、浏览器、Nodejs",
55
"main": "lib/we-validator.js",
66
"scripts": {

src/we-validator.js

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)