var isValid;
function addError(control, text){
$(control).after('');
$(control).addClass('errorField');
}
function clearError(control){
$(control).removeClass('errorField');
$(control + ' + label.error').remove();
}
function validateRequired(){
if ($(this).attr('disabled') != undefined)
return;
if ($(this).val() == null || $(this).val() == "")
{
isValid = false;
addError(this, 'This field is required.');
}
}
function validateRegex(r, field, message){
if (field.value != '')
if (r.test(field.value) == false)
{
isValid = false;
addError(field, message);
}
}
function validateNumeric(){
validateRegex(/^\d*$/, this, 'Only digits are allowed.');
}
function validateEmail(){
validateRegex(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/i, this, 'Not valid email address.');
}
function validateDate(){
validateRegex(/^(19|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/, this, 'Not valid date. Format is YYYY-MM-DD.');
}
function validateEqual(field1, field2){
if ($('#' + field1).val() != $('#' + field2).val())
{
var name1 = $('label[for=' + field1 + ']').text();
var name2 = $('label[for=' + field2 + ']').text();
isValid = false;
addError('#' + field2, name2 + ' should be equal to ' + name1 + '.');
}
}
function validateForm(){
isValid = true;
$('form input').removeClass('errorField');
$('label.error').remove();
$('.required').each(validateRequired);
$('.numeric').each(validateNumeric);
$('.email').each(validateEmail);
$('.date').each(validateDate);
if (typeof(customValidate) == 'function')
customValidate();
return isValid;
}