@@ -8,7 +8,7 @@ function getValidator (validator) {
88 if ( validators [ validator ] === undefined ) throw new Error ( 'Invalid validator: ' + validator )
99 return validators [ validator ]
1010 }
11- return null
11+ throw new Error ( 'Couldn\'t get validator for: ' + validator )
1212}
1313
1414export default {
@@ -53,7 +53,7 @@ export default {
5353 let results = [ ]
5454
5555 if ( ! this . isDisabled && this . field . validator && ! this . isReadOnly ) {
56- const fieldValidators = [ ]
56+ const fieldValidators = [ ... this . defaultValidators ]
5757
5858 if ( Array . isArray ( this . field . validator ) ) {
5959 /** Retrieve actual validators for every given validator in Array */
@@ -64,11 +64,6 @@ export default {
6464 fieldValidators . push ( getValidator ( this . field . validator ) )
6565 }
6666
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-
7267 fieldValidators . forEach ( validator => {
7368 const isValid = validator ( this . currentModelValue , this . field , this . model , this )
7469 if ( ! isValid ) results . push ( getMessage ( validator . name ) )
@@ -153,6 +148,28 @@ export default {
153148
154149 computed : {
155150
151+ /**
152+ * Compute all validators that should be present by default.
153+ *
154+ * @returns {*[] }
155+ */
156+ defaultValidators ( ) {
157+ const fieldValidators = [ ]
158+
159+ if ( this . isRequired && ! fieldValidators . includes ( validators . required ) ) {
160+ fieldValidators . push ( validators . required )
161+ }
162+
163+ if ( this . field . min ) {
164+ fieldValidators . push ( validators . minLength )
165+ }
166+
167+ if ( this . field . max ) {
168+ fieldValidators . push ( validators . maxLength )
169+ }
170+ return fieldValidators
171+ } ,
172+
156173 /**
157174 * Compute the current value of this field by accessing the form's model object.
158175 *
0 commit comments