2009-07-07 21 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 
    }); 
}); 

+0

たちは/特定に基づいてフォーム全体を検証しませ検証することができます(私は、彼らはIEチョークを行いますと、あなたのコードの上に持っているいくつかの余分なカンマをマーク)値?たとえば、私は保存/送信ボタンを持つ入れ子になったフォームを持っています。 Submitでのみ検証したいと思います。私の問題は、フォームが非常に動的なので、各フィールドにclass = "required"があるときです。助けてください。 – Aanu

+1

あなたは関数を必要としないだけで、 'depends = '#AppSelectField:visible''を設定することができます – forivall

関連する問題