var isValid; function addError(control, text){ $(control).after(''); $(control).addClass('errorField'); } function validateRequired(){ 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(/^(\S+)@([a-z0-9-]+)(\.)([a-z]{2,4})(\.?)([a-z]{0,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; }