A minlength/maxlength rule for the DEGJS formValidation module.
npm install @degjs/form-validation-min-max-lengthA minlength/maxlength rule module for the DEGJS formValidation module.
If you're already using NPM for your project, you can install formValidation-minMaxLength with the following command:
```
$ npm install @degjs/form-validation-min-max-length
`js
import formValidation from "@degjs/form-validation";
/ Import the MinMaxLength rule module /
import minMaxLength from "@degjs/form-validation-min-max-length";
let validationOptions = {
rules: [
minMaxLength
]
};
/ Instantiate the formValidation module on an element /
let formElement = document.querySelector('.form');
let validationInst = formValidation(formElement, validationOptions);
`
Optionally, default rule settings can be overridden by instantiating the rule as a function and passing options as an object:
`js`
let validationOptions = {
rules: [
minMaxLength({
message: 'Please enter between [minToken] and [maxToken] characters.',
events: [
'focusout',
'submit'
]
})
]
};
formValidation-minMaxLength builds upon the HTML5 maxlength validation pattern, and also adds a custom data-minlength attribute for extending native functionality. Therefore, after instantiating the rule module, a field in the validation instance will be tested by this rule simply by setting the data-minlength and maxlength of a field's input.
This rule module contains its own default validation message. However, this message can be overridden by adding a data attribute at the field or form level (in that order of importance).
Because we may want to customize the validation message based on messages set on DOM elements, this module also makes use of token values that can be set in the rule's settings, or customized via a callback function.
Sample Markup:
`html`
#### options.message
Type: String Please enter a value between [minToken] and [maxToken] characters.
Default:
The default message displayed when a field fails this rule's validation test.
#### options.messageAttr
Type: String data-validation-minmaxlength-message
Default:
The data attribute formValidation will check when determining message hierarchy
#### options.events
Type: Array ['focusout','submit']
Default: submit
An array of DOM events that will cause the rule to run validation on a field (or the entire form, when using ). NOTE: focusout should be used in place of blur due to event bubbling limitations.
#### options.minAttr
Type: String data-minlength
Default:
The data attribute the rule will check when determining minimum length.
#### options.maxAttr
Type: String maxlength
Default:
The data attribute the rule will check when determining maximum length.
#### options.minToken
Type: String [minToken]
Default:
The token the rule will replace with the calculated minlength value.
#### options.maxToken
Type: String [maxToken]`
Default:
The token the rule will replace with the calculated maxlength value.
For more detailed usage instructions, see the formValidation Usage documentation.