Skip to content

Commit a8f826f

Browse files
committed
feat(validators): always add required validator if necessary
1 parent aeec59f commit a8f826f

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/mixins/abstractField.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,23 @@ export default {
5353
let results = []
5454

5555
if (!this.isDisabled && this.field.validator && !this.isReadOnly) {
56-
const validators = []
56+
const fieldValidators = []
5757

5858
if (Array.isArray(this.field.validator)) {
5959
/** Retrieve actual validators for every given validator in Array */
6060
this.field.validator.forEach(validator => {
61-
validators.push(getValidator(validator))
61+
fieldValidators.push(getValidator(validator))
6262
})
6363
} else {
64-
validators.push(getValidator(this.field.validator))
64+
fieldValidators.push(getValidator(this.field.validator))
6565
}
6666

67-
validators.forEach(validator => {
67+
/** Always include 'required' validator, whenever the field is required */
68+
if (this.isRequired && !fieldValidators.includes(validators.required)) {
69+
fieldValidators.push(validators.required)
70+
}
71+
72+
fieldValidators.forEach(validator => {
6873
const isValid = validator(this.currentModelValue, this.field, this.model, this)
6974
if (!isValid) results.push(getMessage(validator.name))
7075
})

0 commit comments

Comments
 (0)