2009-07-07 123 views
6

我正在使用JQuery Validation。现在我希望只有在满足某些条件时才调用规则,即我要$("#AppSelectField").is(':hidden')返回false,然后才调用规则。JQuery中的条件规则验证

我的规则如下:

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


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

}, 

}); 
}); 

如何修改上面的部分,以满足我的需要? 注意我不想为requireddigits编写我自己的自定义方法。

回答

16

这应做到:

$(function() { 
    var checkIfFieldVisible = function() { 
     return !$("#AppSelectField").is(':hidden'); 
    }; 

    $("#RequestLock").validate({ 
     rules: { 
      FloorNum: { 
       required: { depends: checkIfFieldVisible }, 
       digits: { depends: checkIfFieldVisible } 
      }, // <-- EXTRA COMMA 
     }, 
     message: { 
      FloorNum: "The floor number must be integer", 
     }, // <-- EXTRA COMMA 
    }); 
}); 

(我画你有你的代码一些额外的逗号,因为它们会使IE扼流圈)

+0

我们可以验证基于某些/不验证整个表单值?例如,我有一个嵌套的表单与保存/提交按钮。我只想验证提交。我的问题是,当我在每个领域有类=“必需”,因为表格非常动态。请帮忙。 – Aanu 2011-08-18 18:26:32