0

徐々に表示される多くのフィールドを持つフォームがあります。次のフィールドを表示する前に、フィールドがOKであることを確認する必要があるので、これを理解しました。

switch (index){
          case '1': 
              addRules1();
              break;
          case '2':
            addRules2();
            break;
          case '3':
              addRules3();
              break;
          }
          if ($("#contractForm").valid()){
//go to next group of inputs

関数は次のaddRulesようになります。

function addRules1(){
    $("#contractForm").validate({
        rules: {
        nom: {
           required: true,
           minlength: 2
         }
       },
       messages: {
           nom: {
           required: "the name!!",
           minlength: jQuery.format("At least {0} characters required!")
         }
       }        
    });                   
}
function addRules2(){

    $("#contractForm").validate({
        rules: {
        commune2: {
           required: true,
           minlength: 2
         }
       },
       messages: {
           commune2: {
           required: "the commune!!",
           minlength: jQuery.format("At least {0} characters required!")
         }
       }        
    }); 
}
function addRules3(){

    $("#contractForm").validate({
        rules: {
        addresseLivraison: {
           required: true,
           minlength: 2
         }
       },
       messages: {
           addresseLivraison: {
           required: "the addresse!!",
           minlength: jQuery.format("At least {0} characters required!")
         }
       }        
    });                                    
} 

最初のグループではすべてが正常ですが(デバッガーでも)、2番目のグループではOKを検証して次に進みます。バリデーターをリセットする必要がありますか?もっと簡単な方法はありますか?

4

2 に答える 2

0

これは、ルールを追加および削除する方法ではありません。プラグインのドキュメントによると、

.rules('add', {
        required: true,
        number: true
});


.rules('remove', {
        required: true,
        number: true
});

注:これらのメソッドのいずれかを使用する.validate()に、フォームを呼び出す必要があります。

于 2012-05-17T15:30:16.793 に答える
0
 switch (index){
  case '1': 
      addRules("nom","the Name!!");
      break;
  case '2':
     addRules("commune2","the commune!!");
     break;
  case '3':
      addRules("addresseLivraison","the addresse!!");
      break;
  }

次に、この関数を使用します。

function addRules(att,text){
    $("#contractForm").validate({
        rules: {
        att: {
           required: true,
           minlength: 2
         }
       },
       messages: {
           att: {
           required: text,
           minlength: jQuery.format("At least {0} characters required!")
         }
       }        
    });                   
}
于 2012-05-17T15:36:02.967 に答える