File: /home/cafsindia/hrms_allyindian_com/dist/form-validate.js
// Wait until DOM is ready
$(document).ready(function () {
if (typeof $.validator === "undefined") {
console.error("jQuery Validation plugin not loaded. Please check your script order.");
return false;
}
// Global default settings for all forms
$.validator.setDefaults({
ignore: ".ignore,:hidden, [readonly], [disabled]",
errorClass: "text-danger",
highlight: function (element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function (element) {
$(element).closest('.form-group').removeClass('has-error');
}
});
// Custom validation methods
$.validator.addMethod("alphanumeric", function (value, element) {
return this.optional(element) || /^[a-z0-9\-\s]+$/i.test(value);
}, "Allow only letters, numbers, or dashes.");
$.validator.addMethod("pan_number", function (value, element) {
return this.optional(element) || /^[A-Z]{5}[0-9]{4}[A-Z]{1}$/.test(value);
}, "Please enter valid PAN Number.");
// Optional: add more shared methods here (mobile, alphatext, etc.)
// Expose an init method for module-specific validation
window.initFormValidation = function (formSelector, rules, submitHandler) {
$(formSelector).submit(function (event) {
event.preventDefault();
}).validate({
rules: rules,
invalidHandler: function (e, validator) {
if (validator.errorList.length) {
$('.nav-tabs a[href="#' + $(validator.errorList[0].element)
.closest(".tab-pane").attr('id') + '"]').tab('show');
}
},
submitHandler: submitHandler
});
};
});