Skip to content

Commit

Permalink
Merge pull request #12 from alibaba-fusion/fix-required
Browse files Browse the repository at this point in the history
Fix required=false to ignore required
  • Loading branch information
youluna authored Oct 11, 2019
2 parents cb1a475 + dc2470f commit ea71b85
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@alifd/validate",
"version": "1.1.3",
"version": "1.2.0",
"description": "Validation to be used with @alifd/field",
"files": [
"demo/",
Expand Down
7 changes: 4 additions & 3 deletions src/validator.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,16 @@ export function validateFunc(validator, ruleType) {
if (ruleType !== 'required') {
const errors = [];
rules.required(rule, value, errors, options);
// 空数据
if (errors.length > 0) {
if ('required' in rule) {
if ('required' in rule && rule.required) {
if (cb) {
return cb(errors);
} else {
return Promise.reject(errors);
}
} else if (cb) {
return cb([]); //忽略空数据的判断
return cb([]); //空数据,并且没有require要求,则忽略
} else {
return Promise.resolve(null);
}
Expand Down Expand Up @@ -69,7 +70,7 @@ export function getValidationMethod(rule) {
}

// 有其他位置参数
if ('required' in rule) {
if ('required' in rule && rule.required) {
return validateFunc(rules.required, 'required');
}

Expand Down
2 changes: 2 additions & 0 deletions test/required.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@ describe('required', () => {
new Schema({
v1: { required },
v2: { required },
v3: { required: false },
}).validate(
{
v1: null,
v2: undefined,
v3: ''
},
errors => {
assert(errors.length === 2);
Expand Down

0 comments on commit ea71b85

Please sign in to comment.