Form validation for Bulma.css
Unless imported as module BulmValidator requires JQuery
You can set custom validations containing patterns, messages, callback methods and async methods.
Validation is applied to the field through the data-validation attribute ```html
Phone number
```
This is a help text
const config = {
form: '#main-form', // form selector
lazy: true, // if set to true validation will be executed only when the form is submitted
scroll: true, // scroll to error
requiredMessage: 'Required field',
successIcon: 'fas fa-check',
errorIcon: 'fas fa-exclamation-triangle',
sections: { // each section contains an array of field names
section_1: ["amount"],
section_2: ["gender","first_name","last_name","phone_number","email","address","province"]
}
classes: {
danger: "is-danger", // class applied to input on passed validation
success: "is-success", // class applied to input on failed validation
helptext: "help" // selector for validation text
}
};
May contain rules (object array), async (async method), callback (simple method)
Bundled validations: number - float - email - url - strongPassword
const validations = {
cell: {
rules: [
{
regex: /^((00|\+)\d{2}[- ]?)?3\d{8,9}$/,
message: 'Insert a valid phone number'
}
]
},
server: {
async:
{
method: serverRequest, //custom method ,
message: 'Error retrieving data from server'
}
},
address: {
callback: {
method: checkAddress, //custom method
message: 'Select an adress from Google autocomplete options'
}
},
zip: {
rules: [
{
regex: /^[0-9]{5}/,
message: 'Invalid Zip code'
}
],
callback: {
method: checkZip, //custom method
message: 'Zip code not present in list'
}
}
};
var validator = new BulmaValidator(config,validations);allows only the input of numbers ```html ```
validator.validateSection('section_1');
All events are triggered on the form element
validation passed on form submit
validator.form.on('submit-valid',(e) => {
...your code here
})
validation failed on form submit
validator.form.on('submit-error',(e) => {
...your code here
})
section validation start
validator.form.on('validate-section',(e,sectionName,sectionValue) => {
...your code here
})
validator.form.on('validate-section-valid',(e,sectionName,sectionValue) => {
...your code here
})
validator.form.on('validate-section-error',(e,sectionName,sectionValue) => {
...your code here
})