Client side validation using jquery
Registration form validation using jquery validator
How to validate a form data on client side before send to the form data on server.
Step 1 :-
I have a html file which name is "RegistrationForm.html", This file will include jquery, css, bootstrap.
Here I am going to write my code to validate the form :-
<!DOCTYPE html>
<html>
<head>
<title>Form Validation</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<style type="text/css">
#myForm .form-group label.error {
color: #FB3A3A;
display: inline-block;
margin: 0px 0 0px 0px;
padding: 0;
text-align: left;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/additional-methods.js"></script>
</head>
<body>
<div id="page-wrapper" >
<div class="container" >
<h1>
Form Validation
</h1>
<form name="myForm" class="form-horizontal" id ="myForm" action="#" method="POST" enctype="multipart/form-data">
<div class="panel panel-info">
<div class="panel-heading">Form validation</div>
<div class="panel-body">
<div class="row">
<div class="col-md-12">
<div class="col-md-6">
<div class="form-group">
<label for="name" class="col-md-4">Name</label>
<div class="col-md-6">
<input type="text" class="form-control" name="name" placeholder="Enter Name"/>
</div>
</div>
<div class="form-group" >
<label for="Mobile" class="col-md-4">Mobile</label>
<div class="col-md-6">
<input type="text" class="form-control" name="phone" placeholder="Enter Mobile Number"/>
</div>
</div>
<div class="form-group ">
<label for="email" class="col-md-4">Email </label>
<div class="col-md-6">
<input type="text" class="form-control" name="email" placeholder="Enter Email" >
</div>
</div>
<div class="form-group">
<label for="code" class="col-md-4">Code(Exact 11 digit) </label>
<div class="col-md-6">
<input type="text" class="form-control" name="code" placeholder="Enter code" >
</div>
</div>
<div class="form-group">
<label for="code" class="col-md-4">Min Length </label>
<div class="col-md-6">
<input type="text" class="form-control" name="min_length" placeholder="Enter min length" >
</div>
</div>
<div class="form-group">
<label for="code" class="col-md-4">Number </label>
<div class="col-md-6">
<input type="text" class="form-control" name="number" placeholder="Enter Only digits" >
</div>
</div>
<div class="form-group">
<label for="url" class="col-md-4">Website </label>
<div class="col-md-6">
<input type="text" class="form-control" name="url" placeholder="Enter Url" >
</div>
</div>
<div class="form-group">
<label for="url" class="col-md-4">Upload video </label>
<div class="col-md-6">
<input type="file" class="form-control" name="videoUploader" id="videoUploader" >
<video controls id="vid" style="display:none"></video>
</div>
</div>
<div class="form-group">
<label for="url" class="col-md-4">Password </label>
<div class="col-md-6">
<input type="password" id="pw" class="form-control" name="password" placeholder="Enter Password" >
</div>
</div>
<div class="form-group">
<label for="url" class="col-md-4">Confirm password </label>
<div class="col-md-6">
<input type="password" class="form-control" name="confirm_password" placeholder="Enter Confirm Password" >
</div>
</div>
<div class="form-group">
<label for="hobby" class="col-md-4">Please Select Hobby </label>
<div class="col-md-8">
<input type="checkbox" name="hobby">Cricket
<input type="checkbox" name="hobby">Kabbadi
<input type="checkbox" name="hobby">Football
<input type="checkbox" name="hobby">Balliball
</div>
</div>
<div class="form-group">
<label for="gender" class="col-md-4">Please Select Gender </label>
<div class="col-md-6">
<input type="radio" name="gender">Male
<input type="radio" name="gender">Female
</div>
</div>
<div class="form-group">
<label for="city" class="col-md-4">Please Select City </label>
<div class="col-md-6">
<select class="form-control" name="city" id="city">
<option value="">Select One...</option>
<option value="indore">Indore</option>
<option value="bhopal">Bhopal</option>
<option value="dewas">Dewas</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-4">Select DOB</label>
<div class="col-md-6">
<input class="form-control" type="date" name="dob" />
</div>
</div>
<div class="form-group">
<label class="col-md-4">Select Start date</label>
<div class="col-md-6">
<input class="form-control" type="date" name="startDate" id="stDate" />
</div>
</div>
<div class="form-group">
<label class="col-md-4">Select End date</label>
<div class="col-md-6">
<input class="form-control" type="date" name="endDate" id="eDate" />
</div>
</div>
<div class="form-group">
<label class="col-md-4">Select Image</label>
<div class="col-md-6">
<input class="form-control" type="file" name="imgUploader" />
</div>
</div>
</div>
<!-- end div -->
</div>
<!-- end div -->
</div>
</div>
</div>
<div class="col-md-4 col-md-offset-4" style="margin-bottom: 50px;">
<center>
<input type="submit" class="btn btn-primary" id="btnSubmit" value="Submit" />
</center>
</div>
</form>
</div>
</div>
</body>
<script type="text/javascript">
$.validator.addMethod("imgFileSize",function(value,element,param){
return this.optional(element)||(element.files[0].size<=param)
});
$.validator.addMethod("videoFileSize",function(value,element,param){
return this.optional(element)||(element.files[0].size<=param)
});
$.validator.addMethod("videoFileDuration",function(value,element,param){
var seconds = $("#vid")[0].duration;
if(seconds < param)
return true;
else
return false;
});
$.validator.addMethod("regex",function(value,element,param){
var re = new RegExp(param);
return this.optional(element) || re.test(value);
});
$.validator.addMethod("birth", function (value, element) {
var dob = value.split('-');
if (parseInt(dob[0]) <= new Date().getFullYear()
&& parseInt(dob[1])<= new Date().getMonth()+1
&& parseInt(dob[2])<= new Date().getDate())
return true;
else
return false;
});
$.validator.addMethod("greaterThan",function(value, element, params) {
if (!/Invalid|NaN/.test(new Date(value))) {
return new Date(value) > new Date($(params).val());
}
return isNaN(value) && isNaN($(params).val()) || (Number(value) > Number($(params).val()));
});
$("#videoUploader").change(function(e){
var file = e.currentTarget.files[0];
var objectUrl = URL.createObjectURL(file);
$("#vid").prop("src", objectUrl);
});
$("#myForm").validate({
rules: {
name: "required",
url: {
required: true,
url: true
},
phone: {
required: true,
//pattern: "^[7-9]{1}[0-9]{9}$/"
rangelength: [10, 10],
digits: true,
},
email: {
required: true,
email: true
},
code: {
required: true,
rangelength: [11, 11]
},
min_length:{
required: true,
minlength: 3
},
number: {
digits: true,
required:true
},
videoUploader:{
required:true,
extension:'ogg|mp4|avi',
videoFileSize:10253326,
videoFileDuration:60
},
password: {
required: true,
regex: "^.*(?=.{6,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$"
},
confirm_password: {
required: true,
equalTo: "#pw"
},
hobby:{
required:true,
minlength:2
},
gender:{
required:true
},
city:{
required:true
},
dob:{
required:true,
birth:true
},
startDate:{
required:true
},
endDate:{
required:true,
greaterThan: "#stDate"
},
imgUploader:{
required:true,
extension:'jpg|png',
imgFileSize:10000,
}
},
messages: {
name: "Please Enter Name",
url:{
required:"Please enter URL",
url:"Please Enter Website Url"
},
phone:{
required: "Please Enter Phone",
//pattern: "Please Enter Valid Phone Number"
rangelength:"Phone number must be 10 digits",
digits:"Phone number must be 10 digits"
},
email: {
required: "Please Enter Email",
email: "Please Enter Valid Email"
},
code: {
required: "Please Enter Code",
rangelength: "Please Enter 11 Digit code"
},
min_length:{
required: "Please Enter min_length",
minlength: "Please Enter Minimum 3 Digit"
},
number: {
digits: "Please Enter only digits",
required:"Please Enter number"
},
videoUploader:{
required:"Please choose file",
extension:'Please choose ogg|mp4|avi file',
videoFileSize:"Please upload less than 10 mb file",
videoFileDuration:"Video length/duration must be less than 1 min"
},
password: {
required: "Please provide a password",
regex:"Password must have 6 character and one uppercase, one lowercase, one digit and one special character"
},
confirm_password: {
required: "Please provide a password",
minlength: "Your password must be at least 6 characters long",
equalTo: "Please enter the same password as above"
},
hobby:{
required:"Please select hobby",
minlength:"Please select 2 hobby"
},
gender:{
required:"Please select gender"
},
city:{
required:"Please select a city"
},
dob:{
required:"Please select DOB",
birth:"Please select correct DOB"
},
startDate:{
required:"Please select start date"
},
endDate:{
required:"Please select end date",
greaterThan:"Must be greater than start date."
},
imgUploader:{
required:"Please select image",
extension:"Please choose jpg or png file",
imgFileSize:"Please upload less than 10 kb image"
}
},
errorPlacement: function(error, element) {
if (element[0].type == 'checkbox') {
error.appendTo(element.parent());
}
else if(element.is(":radio")){
error.appendTo(element.parent());
}
else {
error.insertAfter(element);
}
},
submitHandler: function (form) {
form.submit();
}
});
$(document).ready(function() {
$("#btnSubmit").click(function(){
if($("#myForm").valid()){
alert("Form Submitted Successfully...");
}
else{
alert("Form Not Submitted...");
}
});
});
</script>
</html>
Step 2 :-
Here I am posting my video so that you can watch all validations what I have applied in my registration form.
Here I am going to write my code to validate the form :-
<!DOCTYPE html>
<html>
<head>
<title>Form Validation</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<style type="text/css">
#myForm .form-group label.error {
color: #FB3A3A;
display: inline-block;
margin: 0px 0 0px 0px;
padding: 0;
text-align: left;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/additional-methods.js"></script>
</head>
<body>
<div id="page-wrapper" >
<div class="container" >
<h1>
Form Validation
</h1>
<form name="myForm" class="form-horizontal" id ="myForm" action="#" method="POST" enctype="multipart/form-data">
<div class="panel panel-info">
<div class="panel-heading">Form validation</div>
<div class="panel-body">
<div class="row">
<div class="col-md-12">
<div class="col-md-6">
<div class="form-group">
<label for="name" class="col-md-4">Name</label>
<div class="col-md-6">
<input type="text" class="form-control" name="name" placeholder="Enter Name"/>
</div>
</div>
<div class="form-group" >
<label for="Mobile" class="col-md-4">Mobile</label>
<div class="col-md-6">
<input type="text" class="form-control" name="phone" placeholder="Enter Mobile Number"/>
</div>
</div>
<div class="form-group ">
<label for="email" class="col-md-4">Email </label>
<div class="col-md-6">
<input type="text" class="form-control" name="email" placeholder="Enter Email" >
</div>
</div>
<div class="form-group">
<label for="code" class="col-md-4">Code(Exact 11 digit) </label>
<div class="col-md-6">
<input type="text" class="form-control" name="code" placeholder="Enter code" >
</div>
</div>
<div class="form-group">
<label for="code" class="col-md-4">Min Length </label>
<div class="col-md-6">
<input type="text" class="form-control" name="min_length" placeholder="Enter min length" >
</div>
</div>
<div class="form-group">
<label for="code" class="col-md-4">Number </label>
<div class="col-md-6">
<input type="text" class="form-control" name="number" placeholder="Enter Only digits" >
</div>
</div>
<div class="form-group">
<label for="url" class="col-md-4">Website </label>
<div class="col-md-6">
<input type="text" class="form-control" name="url" placeholder="Enter Url" >
</div>
</div>
<div class="form-group">
<label for="url" class="col-md-4">Upload video </label>
<div class="col-md-6">
<input type="file" class="form-control" name="videoUploader" id="videoUploader" >
<video controls id="vid" style="display:none"></video>
</div>
</div>
<div class="form-group">
<label for="url" class="col-md-4">Password </label>
<div class="col-md-6">
<input type="password" id="pw" class="form-control" name="password" placeholder="Enter Password" >
</div>
</div>
<div class="form-group">
<label for="url" class="col-md-4">Confirm password </label>
<div class="col-md-6">
<input type="password" class="form-control" name="confirm_password" placeholder="Enter Confirm Password" >
</div>
</div>
<div class="form-group">
<label for="hobby" class="col-md-4">Please Select Hobby </label>
<div class="col-md-8">
<input type="checkbox" name="hobby">Cricket
<input type="checkbox" name="hobby">Kabbadi
<input type="checkbox" name="hobby">Football
<input type="checkbox" name="hobby">Balliball
</div>
</div>
<div class="form-group">
<label for="gender" class="col-md-4">Please Select Gender </label>
<div class="col-md-6">
<input type="radio" name="gender">Male
<input type="radio" name="gender">Female
</div>
</div>
<div class="form-group">
<label for="city" class="col-md-4">Please Select City </label>
<div class="col-md-6">
<select class="form-control" name="city" id="city">
<option value="">Select One...</option>
<option value="indore">Indore</option>
<option value="bhopal">Bhopal</option>
<option value="dewas">Dewas</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-4">Select DOB</label>
<div class="col-md-6">
<input class="form-control" type="date" name="dob" />
</div>
</div>
<div class="form-group">
<label class="col-md-4">Select Start date</label>
<div class="col-md-6">
<input class="form-control" type="date" name="startDate" id="stDate" />
</div>
</div>
<div class="form-group">
<label class="col-md-4">Select End date</label>
<div class="col-md-6">
<input class="form-control" type="date" name="endDate" id="eDate" />
</div>
</div>
<div class="form-group">
<label class="col-md-4">Select Image</label>
<div class="col-md-6">
<input class="form-control" type="file" name="imgUploader" />
</div>
</div>
</div>
<!-- end div -->
</div>
<!-- end div -->
</div>
</div>
</div>
<div class="col-md-4 col-md-offset-4" style="margin-bottom: 50px;">
<center>
<input type="submit" class="btn btn-primary" id="btnSubmit" value="Submit" />
</center>
</div>
</form>
</div>
</div>
</body>
<script type="text/javascript">
$.validator.addMethod("imgFileSize",function(value,element,param){
return this.optional(element)||(element.files[0].size<=param)
});
$.validator.addMethod("videoFileSize",function(value,element,param){
return this.optional(element)||(element.files[0].size<=param)
});
$.validator.addMethod("videoFileDuration",function(value,element,param){
var seconds = $("#vid")[0].duration;
if(seconds < param)
return true;
else
return false;
});
$.validator.addMethod("regex",function(value,element,param){
var re = new RegExp(param);
return this.optional(element) || re.test(value);
});
$.validator.addMethod("birth", function (value, element) {
var dob = value.split('-');
if (parseInt(dob[0]) <= new Date().getFullYear()
&& parseInt(dob[1])<= new Date().getMonth()+1
&& parseInt(dob[2])<= new Date().getDate())
return true;
else
return false;
});
$.validator.addMethod("greaterThan",function(value, element, params) {
if (!/Invalid|NaN/.test(new Date(value))) {
return new Date(value) > new Date($(params).val());
}
return isNaN(value) && isNaN($(params).val()) || (Number(value) > Number($(params).val()));
});
$("#videoUploader").change(function(e){
var file = e.currentTarget.files[0];
var objectUrl = URL.createObjectURL(file);
$("#vid").prop("src", objectUrl);
});
$("#myForm").validate({
rules: {
name: "required",
url: {
required: true,
url: true
},
phone: {
required: true,
//pattern: "^[7-9]{1}[0-9]{9}$/"
rangelength: [10, 10],
digits: true,
},
email: {
required: true,
email: true
},
code: {
required: true,
rangelength: [11, 11]
},
min_length:{
required: true,
minlength: 3
},
number: {
digits: true,
required:true
},
videoUploader:{
required:true,
extension:'ogg|mp4|avi',
videoFileSize:10253326,
videoFileDuration:60
},
password: {
required: true,
regex: "^.*(?=.{6,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$"
},
confirm_password: {
required: true,
equalTo: "#pw"
},
hobby:{
required:true,
minlength:2
},
gender:{
required:true
},
city:{
required:true
},
dob:{
required:true,
birth:true
},
startDate:{
required:true
},
endDate:{
required:true,
greaterThan: "#stDate"
},
imgUploader:{
required:true,
extension:'jpg|png',
imgFileSize:10000,
}
},
messages: {
name: "Please Enter Name",
url:{
required:"Please enter URL",
url:"Please Enter Website Url"
},
phone:{
required: "Please Enter Phone",
//pattern: "Please Enter Valid Phone Number"
rangelength:"Phone number must be 10 digits",
digits:"Phone number must be 10 digits"
},
email: {
required: "Please Enter Email",
email: "Please Enter Valid Email"
},
code: {
required: "Please Enter Code",
rangelength: "Please Enter 11 Digit code"
},
min_length:{
required: "Please Enter min_length",
minlength: "Please Enter Minimum 3 Digit"
},
number: {
digits: "Please Enter only digits",
required:"Please Enter number"
},
videoUploader:{
required:"Please choose file",
extension:'Please choose ogg|mp4|avi file',
videoFileSize:"Please upload less than 10 mb file",
videoFileDuration:"Video length/duration must be less than 1 min"
},
password: {
required: "Please provide a password",
regex:"Password must have 6 character and one uppercase, one lowercase, one digit and one special character"
},
confirm_password: {
required: "Please provide a password",
minlength: "Your password must be at least 6 characters long",
equalTo: "Please enter the same password as above"
},
hobby:{
required:"Please select hobby",
minlength:"Please select 2 hobby"
},
gender:{
required:"Please select gender"
},
city:{
required:"Please select a city"
},
dob:{
required:"Please select DOB",
birth:"Please select correct DOB"
},
startDate:{
required:"Please select start date"
},
endDate:{
required:"Please select end date",
greaterThan:"Must be greater than start date."
},
imgUploader:{
required:"Please select image",
extension:"Please choose jpg or png file",
imgFileSize:"Please upload less than 10 kb image"
}
},
errorPlacement: function(error, element) {
if (element[0].type == 'checkbox') {
error.appendTo(element.parent());
}
else if(element.is(":radio")){
error.appendTo(element.parent());
}
else {
error.insertAfter(element);
}
},
submitHandler: function (form) {
form.submit();
}
});
$(document).ready(function() {
$("#btnSubmit").click(function(){
if($("#myForm").valid()){
alert("Form Submitted Successfully...");
}
else{
alert("Form Not Submitted...");
}
});
});
</script>
</html>
Step 2 :-
Here I am posting my video so that you can watch all validations what I have applied in my registration form.
Comments
Post a Comment