2010-12-03 19 views
0

J'ai un formulaire avec plusieurs champs que je valide. J'ai organisé mes contrôles dans 2 fieldsets: MASTER et DETAIL.Comment puis-je simuler un groupe de validation avec le plugin de validation jquery?

Screenshot

J'utilise le bouton Enregistrer à soumet le formulaire et la Ajouter bouton pour ajouter un nouvel élément à mon tableau d'objets, où je stocke temporairement les données saisies creux les entrées DETAIL alors je vais envoyer au serveur avec les données de la partie MASTER.

Le problème est que lorsque j'appuie sur le bouton Ajouter et que je n'ai toujours pas rempli les entrées MASTER, je ne peux pas continuer à ajouter un nouveau détail à cause de la validation Master. Et de même, lorsque je tente de soumettre le formulaire et les champs DETAIL sont vides les feux de validation de détail.

Ma question est: Est-il possible de simuler un groupe de validation avec le plugin de validation jQuery?

Répondre

1

J'ai été googler et j'ai trouvé que je peux retirer/ajouter la classe (par exemple, nécessaire, nombre); cela m'a donné quelques idées sur la façon de simuler des groupes de validation.

$(document).ready(function(){  
    $("#add").click(function() { 
     $("#fecha").removeClass("required"); 
     $("#fecha").removeClass("date"); 
     $("#numeroDoc").removeClass("required"); 
     $("#numeroDoc").removeClass("number"); 
     $("#serieDoc").removeClass("required"); 
     $("#serieDoc").removeClass("number"); 

     $("#importe").addClass("required"); 
     $("#importe").addClass("number"); 
     $("#concepto").addClass("required");   
    }); 
    $("#save").click(function() { 
     $("#importe").removeClass("required"); 
     $("#importe").removeClass("number"); 
     $("#concepto").removeClass("required");  

     $("#fecha").addClass("required"); 
     $("#fecha").addClass("date"); 
     $("#numeroDoc").addClass("required"); 
     $("#numeroDoc").addClass("number"); 
     $("#serieDoc").addClass("required"); 
     $("#serieDoc").addClass("number"); 
    }); 
    $("#form1").validate({   
     errorPlacement: function(error, element) { 
      error.appendTo(element.parent("td").next("td")); 
     } , 
     submitHandler: function(form) {    

      $("#add").click(function() { 
       addDetail(); 
       return false; 

      }); 
      $("#save").click(function() { 
       return false; 

      });      
     } 
    }); 
}); 

Bien que, je l'ai apparemment trouvé la réponse, je ne suis pas si sûr en raison de quelques détails:

1.Quand chargement de la page, les numéros que la validation (class = « nombre ») ne fonctionne pas jusqu'à ce que je presse Ajouter

2.Dans je fais une erreur en entrant les données, alors je dois appuyer sur le bouton deux fois pour tirer la validation

J'espère que vous pouvez m'aider à améliorer ce code