Let's start with the following simple example
To achieve this we need to use the following scripts and css
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
- <script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
- <script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
- <link href="https://jqueryvalidation.org/files/demo/css/screen.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
<link href="https://jqueryvalidation.org/files/demo/css/screen.css" rel="stylesheet">
Create a simple form
- <form class="cmxform" id="myform">
- <fieldset>
- <label for="firstname">First Name:</label>
- <input id="firstname" name="firstname">
- <label for="lastname">Last Name:</label>
- <input id="lastname" name="lastname">
- <label for="url">Url:</label>
- <input id="url" name="url">
- <label for="number">Number:</label>
- <input id="number" name="number">
- <label for="email">Email:</label>
- <input id="email" name="email">
- <label for="confirm">Confirm</label>
- <input class="checkbox" id="confirm" name="confirm" type="checkbox">
- <input class="submit" type="submit" value="Validate">
- </fieldset>
- </form>
<form class="cmxform" id="myform">
<fieldset>
<label for="firstname">First Name:</label>
<input id="firstname" name="firstname">
<label for="lastname">Last Name:</label>
<input id="lastname" name="lastname">
<label for="url">Url:</label>
<input id="url" name="url">
<label for="number">Number:</label>
<input id="number" name="number">
<label for="email">Email:</label>
<input id="email" name="email">
<label for="confirm">Confirm</label>
<input class="checkbox" id="confirm" name="confirm" type="checkbox">
<input class="submit" type="submit" value="Validate">
</fieldset>
</form>
And finally the javascript code. The 'validate' method contains the set of rules and messages. Messages are used for change default error messages.
- <script>
- $( "#myform" ).validate({
- rules: {
- firstname: {
- required: true,
- minlength: 3
- },
- lastname: {
- required: true,
- minlength: 3
- },
- url: {
- required: true,
- url: true
- },
- number: {
- required: true,
- number: true
- },
- email: {
- required: true,
- email: true
- },
- password: {
- required: true,
- minlength: 6
- },
- confirm_password: {
- required: true,
- minlength: 6,
- equalTo: "#password"
- },
- confirm: "required"
- },
- messages: {
- firstname: {
- required: "First Name is required",
- minlength: "First Name must me 3 characters at least"
- },
- lastname: {
- required: "Last Name is required",
- minlength: "Last Name must me 3 characters at least"
- },
- }
- });
- </script>
<script>
$( "#myform" ).validate({
rules: {
firstname: {
required: true,
minlength: 3
},
lastname: {
required: true,
minlength: 3
},
url: {
required: true,
url: true
},
number: {
required: true,
number: true
},
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 6
},
confirm_password: {
required: true,
minlength: 6,
equalTo: "#password"
},
confirm: "required"
},
messages: {
firstname: {
required: "First Name is required",
minlength: "First Name must me 3 characters at least"
},
lastname: {
required: "Last Name is required",
minlength: "Last Name must me 3 characters at least"
},
}
});
</script>
To create custom validation rule we can add the following code:
jQuery.validator.addMethod('customValidation1', customFunction1);
jQuery.validator.addMethod('customValidation2', customFunction2);
jQuery.validator.addMethod('genderValidation', function(value, element, arg){
return value != arg;
});
function customFunction1(){
//Some logic
return true;
}
function customFunction2(){
//Some logic
return false;
}
- jQuery.validator.addMethod('customValidation1', customFunction1);
- jQuery.validator.addMethod('customValidation2', customFunction2);
- jQuery.validator.addMethod('genderValidation', function(value, element, arg){
- return value != arg;
- });
- function customFunction1(){
- //Some logic
- return true;
- }
- function customFunction2(){
- //Some logic
- return false;
- }
jQuery.validator.addMethod('customValidation1', customFunction1);
jQuery.validator.addMethod('customValidation2', customFunction2);
jQuery.validator.addMethod('genderValidation', function(value, element, arg){
return value != arg;
});
function customFunction1(){
//Some logic
return true;
}
function customFunction2(){
//Some logic
return false;
}
And now use 'customValidation1' and 'customValidation2' as rules
$( "#myform1" ).validate({
rules: {
field1: {
customValidation1: true
},
field2: {
customValidation2: true
},
gender:{
genderValidation: 'Animal'
}
},
messages: {
field1: {
customValidation1: 'Custom validation 1 failed'
},
field2: {
customValidation2: 'Custom validation 2 failed'
},
gender: {
genderValidation: 'Hey, you cannot be an animal!'
}
}
});
- $( "#myform1" ).validate({
- rules: {
- field1: {
- customValidation1: true
- },
- field2: {
- customValidation2: true
- },
- gender:{
- genderValidation: 'Animal'
- }
- },
- messages: {
- field1: {
- customValidation1: 'Custom validation 1 failed'
- },
- field2: {
- customValidation2: 'Custom validation 2 failed'
- },
- gender: {
- genderValidation: 'Hey, you cannot be an animal!'
- }
- }
- });
$( "#myform1" ).validate({
rules: {
field1: {
customValidation1: true
},
field2: {
customValidation2: true
},
gender:{
genderValidation: 'Animal'
}
},
messages: {
field1: {
customValidation1: 'Custom validation 1 failed'
},
field2: {
customValidation2: 'Custom validation 2 failed'
},
gender: {
genderValidation: 'Hey, you cannot be an animal!'
}
}
});
It should look like this:
To get more information ref this link
https://jqueryvalidation.org/
No comments:
Post a Comment