Easily validate a form element against a set of rules. The rules can be sync or async, and the form submission will wait.
$ component install segmentio/validate-form
var validate = require('validate-form');
var form = document.getElementById('#form');
validate(form)
.on('blur')
.field('email')
.is('required', 'Please enter your email.')
.is('email')
.field('password')
.is('required')
.is('minimum', 8, 'Minimum 8 characters.')
.is(function (value) {
return value != 'password');
}, 'Come on now...');
Create a new validator for a given form el
.
Add a field to the validator by its name
attribute. You can also just pass the input el
directly.
Add a validation fn
with an optional error message
.
Add a validation function by its shorthand string
with an optional error message
.
Add a validation regexp
with an optional error message
.
Add a validation function that takes optional settings...
and returns a regular validation function. This would be for things like minimum length, which require a length
number.
Trigger the validation on an event
in addition to submit
. For example 'blur'
.
Validate the form manually and callback(err, valid, msg)
.
Set the value adapter fn
, for retrieving the value of the element being validated. By default it will use component/value
.
Set the invalid adapter fn
, for marking the element as invalid. By default this will add an invalid
class to the element and append a message label
element.
Set the valid adapter fn
, for marking the element as valid. By default, this will remove an invalid
class and any message elements.
RegExp
- validates against aRegExp
.'required'
- requires a non-empty value.'email'
- requires an email address.'url'
- requires a URL.'domain'
- requires a domain name.'color'
- requires a hex, RGB or HSL color string.'hex'
- requires a hex color string.'rgb'
- requires an RGB color string.'hsl'
- requires an HSL color string.'minimum', length
- requires a minimumlength
of characters. (alsomin
)'maximum', length
- requires a maximumlength
of characters. (alsomax
)'equal', other
- requires that this field has the same value asother
field
MIT