2010-12-03 4 views
0

Ich habe ein Formular mit mehreren Feldern, die ich validiere. Ich habe meine Kontrollen in 2 Fieldsets organisiert: MASTER und DETAIL.Wie kann ich eine Validierungsgruppe mit jquery validation plugin simulieren?

Screenshot

Ich verwende die Speichern Taste die Form und die hinzufügen Taste legt ein neues Element in mein Array von Objekten an, wo ich die Daten zwischenspeichern eingegeben Trog die DETAIL-Eingänge das werde ich dann zusammen mit den Daten des MASTER-Teils an den Server senden.

Das Problem ist, dass, wenn ich die Add Schaltfläche drücken und ich noch nicht die MASTER-Eingänge ausgefüllt habe, kann ich nicht weiter ein neues Detail wegen der Master-Validierung hinzufügen. Wenn ich versuche, das Formular zu senden, und die DETAIL-Felder leer sind, wird die Detailvalidierung ausgelöst.

Meine Frage ist: Ist es möglich, eine Validierungsgruppe mit jQuery Validierung Plugin zu simulieren?

Antwort

1

Ich habe googeln und ich habe festgestellt, dass ich entfernen/hinzufügen Klasse (beispielsweise erforderlich, Nummer); Das gab mir einige Ideen, wie man Validierungsgruppen simuliert.

$(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; 

      });      
     } 
    }); 
}); 

Obwohl, habe ich festgestellt offenbar die Antwort, ich bin nicht so sicher es aufgrund einiger Details:

1. Wenn die Seite geladen wird, werden nur die Zahlen Validierung (class = „number“) nicht funktioniert, bis ich hinzufügen drücken

2. Wenn ich einen Fehler machen, indem sie die Eingabe von Daten dann muss ich zweimal die Taste drücken, um die Validierung zu feuern

Ich hoffe, Sie können mir helfen, diesen Code zu verbessern