They are meant to give a feeling for how to use the library and should not be considered production ready code.
The native HTML form validate has been disabled in a demo purpose so that you may see how works in action.
This differs from example Ruby on Rails where validators instead have the option.
I find it quite common that you want to have constraints on an optional attribute.
The errors has the same format as the errors from the regular validation function.Any A type promise can be used, just override function success(attributes) function error(errors) var constraints = ; var attributes = ; // Will call the success function and log validate.async(attributes, constraints).then(success, error); // Will call the error function validate.async(, constraints).then(success, error); function Validation Errors(errors, options, attributes, constraints) Validation Errors.prototype = new Error(); // This isn't supported by the ES6 promises validate.async(, constraints, ) .then(success) .catch(Validation Errors, function(error) ) .catch(function(error) ); // Supporting another promise implementation (RSVP in this case) validate. Promise; Sometimes you only want to validate a single value against some constraints and using the normal validate function is quite verbose so there is a shorthand for this.It does little more than proxying the call do the main validation function but with the value wrapped in an object and the options full Messages and format set to also has limited support for nested objects (objects within objects) using the dot notation.If an is thrown from an async validator the argument passed to the rejection handler will be that error.This allows you to differentiate from coding errors and validation errors.