tags:

views:

317

answers:

1

Hello, I am using JQuery Validation. Now I want my rules to be invoked only when certain condition is satisfied, namely, I want $("#AppSelectField").is(':hidden') to return false, only then I invoke the rules.

My rules is as follow:

$(function() {
    $("#RequestLock").validate({
        rules: {
        FloorNum:{
        required: true,
        digits: true
        },


    },
    message: {
     FloorNum: "The floor number must be integer",

},

});
});

How to modify the above section to satisfy my needs? Note I don't want to write my own custom method for required and digits.

+1  A: 

This should do it:

$(function() {
    var depends = function() {
        return !$("#AppSelectField").is(':hidden');
    };
    $("#RequestLock").validate({
        rules: {
            FloorNum: {
                required: { depends: depends },
                digits: { depends: depends }
            }, // <-- EXTRA COMMA
        },
        message: {
            FloorNum: "The floor number must be integer",
        }, // <-- EXTRA COMMA
    });
});

(I marked some extra commas you have on your code, as they will make IE choke)

Paolo Bergantino