2013-01-10 2 views
5

Ich habe einen Fehler Zusammenfassung nach diesem example here:jquery validate: Wie man Fehlerzusammenfassung ein- und ausblendet?

, während ich es, ich habe keine Ahnung haben, angezeigt bekommen umgesetzt, wie es einmal zu verstecken gibt es noch keine Fehler.

Ich habe fiddle here es zeigen:

Typ in etwas in einem der beiden Felder, während die Fehlermeldungen verschwinden, die Zusammenfassung nach wie vor bleibt. Es muss ein Ereignis geben, das ich abonnieren muss, aber ich kann es nicht herausfinden.

$(document).ready(function() { 

    var validator = validation_rules('#myform'); 
    validator.form(); 

    function validation_rules(form) { 

    $.validator.addClassRules("fillone", { 
     require_from_group: [1, ".fillone"] 
    }); 

    var validator = $(form).validate({ 
     errorPlacement: function (error, element) { 
     var field_error = $(form).find('#id_' + element.attr('name')).siblings('.field_error'); 
     if (field_error.length > 0) { 
      error.appendTo(field_error); 
     } 

     $(field_error).show(); 
     }, 
     invalidHandler: function() { 
     $("#validation_summary").text(validator.numberOfInvalids() + " field(s) are invalid"); 
     } 

    }); 
    return validator; 
    } 

}); 

Antwort

4

Verwenden Sie die errorContainer-Option. Dies wird ein-/auszublenden die angegebenen Elemente, wenn das Formular

errorContainer gültig/ungültig

wird: { "# validation_summary"}

Beispiel ist auf http://jsfiddle.net/eDk2m/7

bearbeiten nach Kommentar

lesen

Es gibt ein Ereignis zum Einhängen - ein gutes Beispiel ist in der custom-methods-demo.html Seite der Plugin-Demos. Es sieht so aus

var validator = $("form").bind("invalid-form.validate", 
function() { 
var errorCount = validator.numberOfInvalids(); 
// do other stuff here 
}).validate({...}); 
+0

Dies ist eine gute Lösung. +1 von mir. Ich hatte gehofft, dass es eine Art Funktion geben würde, in die ich mich einklinken könnte, um den Tab-Header auch in roter Farbe zu machen und das rote zu entfernen, sobald die Fehler verschwunden sind. Wie in dieser Geige: http://jsfiddle.net/houmie/Nf8xY/6/ Denken Sie, dass es eine Möglichkeit gibt, das TAB B rot zu machen, wenn es Fehler gibt, und den Stil zu entfernen, wenn es keine Fehler gibt? Wörtlich ein Ereignis zum Einsteigen? – Houman

+0

gibt es ein Ereignis. Es ist "ungültig-form.validate". Ich werde die Antwort bearbeiten, da ich einen Code formatieren kann –

+0

Danke, das hat mir in die richtige Richtung geholfen. Es gibt immer noch ein Problem damit. Ich möchte besser eine neue Frage beginnen. – Houman