MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
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
        });
    };
});