Validator is a jQuery plugin that emulates the validation class found in the laravel framework.
The validator plugin will return an instance of the validator object.
var contactForm = $('form').validator({
    'name' : 'required|max:12'
});
When a jQuery collection is not being used as the data source, you can use an object as the first argument as the data source.
var contactForm = $.validator(
    {'name' : 'Alice'},
    {'name' : 'required|max:12'}
);
The fails and passes functions are used to perform the validation once a Validator object has been created. These methods take an anonymous function as there only arguments which will be called once the validation occurs.
contactForm.fails(function( messages ){
     // The given data did not pass validation
});
The context of these functions is the data source. They also returns a Boolean value.
if(contactForm.fails()){
     // The given data did not pass validation
}
all() Retrives all the messages on all fields
allElements() Retrives all the elements with messages
get( String field ) Retrives all the messages on a particular field
any() returns true if any fields have any messages
count() returns the number of messages over all the fields
first( String field ) gets the first message on a particular element
has( String field ) checks if a given field has any messages
A JSON array of custom error messages can be passed as a third argument. Occurances of :attribute will be replaced with the field name as well as rule parameters when applicable.
var contactForm = $(this).validator(
    {'name'    :'required|between:1,10|alpha_dash'},
    {'between' :':attribute must be between :min and :max'}
);
var contactForm = $(this).validator(
    {'name'         :'required|between:1,10|alpha_dash'},
    {'name.between' :':attribute must be between :min and :max'}
);
Most of the Validation rules in the laravel framework are also avaliable in this plugin, with the exceptions of Active URL, Date Format, Exists (Database), Image (File), MIME Types and Unique (Database). You can find more information on the validation rules in the laravel documentation
- After (Date) after:date
- alpha_dash   alpha
- Alpha Dash   alpha_dash
- Alpha Numericalpha_num
- Before (Date)before:date
- Between      between:min,max
- Confirmed    confirmed
- Date         date
- Different    different:field
- E-Mail       email
- In           in:foo,bar...
- Integer      Integer
- IP Address   ip
- Max          max:value
- Min          min:value
- Not In       not_in:foo,bar...
- Numeric      numeric
- Regular Expressionregex:pattern
- Required     equired
- Required If  required_if:field,value
- Required With required_with:foo,bar...
- Required Without required_without:foo,bar...
- Same         same:field
- Size         size:value
- URL          url
The extend function takes three arguments. the final argument is an array of message placeholders. The rule parameters are mapped onto this array. In the example below, occurances of :foo get replaced with the value of parameters[0]
contactForm.extend('myRule', function(attribute, value, parameters){
     // Return Boolean
}, [':foo', ':bar']);
The following toggles the error class on fields with errors and submits the form once it has been successfully validated.
$('form').submit(function(e){
    e.preventDefault();
    $('form input').removeClass('error');
    
    var contactForm = $(this).validator({
        'name' :'required|max:12',
        'email' : 'required|email'
    });
    contactForm.fails(function( messages ){
        messages.allElements().addClass('error');
    });
    contactForm.passes(function(){
        $(this).submit();
    });
});
This repo was initially forked from Tom-Alexander