Form Validation
Learn how to validate form
by Meily Chhon
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<div class="container">
<div class="rows">
<div class="col-md-12">
<h1>Form Validation</h1>
<form class="form-horizontal user-form" name="user-form" action="#" method="post">
<div class="col-md-6">
<div class="row">
<div class="form-group col-md-10 username">
<label for="InputName" class="control-label label-name">Name</label>
<input type="text" class="form-control input-name required" placeholder="Name" value="">
</div>
</div>
<div class="row">
<div class="input-group col-md-10 sex">
<label class="control-label label-sex">Choose your gender</label><br/>
<label for="RadioSexMale" class="control-label">Male</label>
<input type="radio" id="RadioSexMale" class="input-control required rdo-sex" value="m" name="RadioSex"/>
<label for="RadioSexFemale" class="control-label">Female</label>
<input type="radio" id="RadioSexFemale" class="input-control required rdo-sex" value="f" name="RadioSex"/><br/>
</div>
</div>
<div class="row">
<div class="form-group col-md-10 email">
<label class="control-label" for="InputEmail">Email address</label>
<input type="text" class="form-control input-email required" placeholder="Email" value="">
</div>
</div>
<div class="row">
<div class="form-group col-md-10 password">
<label for="InputPassword" class="control-label">Password</label>
<input type="password" class="form-control input-password required" placeholder="Password" value="">
</div>
</div>
<div class="row">
<div class="form-group col-md-10 confirm-password">
<label for="ConfirmPassword" class="control-label" >Confirm...
JavaScript
(function ($) {
var userForm = {
init: function(){
userForm.validate();
},
validate: function (e){
//set boolean to false to let form submitting
var error = false;
$('.user-form').submit( function(){
var thisForm = $(this);
//get the sex radio button
var radioSex = $('.rdo-sex').is(':checked');
//get the check button of terms and condition
var checkTerm = $('.terms').is(':checked');
//remove all error-msg after form submit
$(this).find('.error-msg').remove();
$('.success-msg').remove();
//remove error class from all form fields
$('.form-group').removeClass('has-error');
//loop through each REQUIRED FIELDS
thisForm.find('.required').each(function(){
//get value from each field with val() method
var txtValue = $(this).val();
//find all label with class control-label that are under the parent element
var labelName = $(this).parent().find('label.control-label').text();
//get all value of each select element and if it doesn't has value append error message into its parent
if((txtValue == '' && $(this).hasClass('select-day')) || (txtValue == '' && $(this).hasClass('select-month')) || (txtValue == '' && $(this).hasClass('select-year'))){
if(!$(this).parent().find('label.error-msg').length){
$(this).parent().addClass('has-error');
$(this).parent().append('<label class="error-msg">Please enter your '+labelName+'</label>');
//set boolean to true to stop form from submitting
error = true;
}
}
else if($(this).hasClass('input-file')){
var file = $('.input-file').val().split('.').pop().toLowerCase();
if(file == ''){
$('.upload-file').find('label.error-msg').remove();
$('.upload-file').append('<label class="error-msg">Please choose file to upload</label>');
}else{
$('.input-file').change();
}
}
//get all value of each required fields if it doesn't has value append error message...