2013-01-10 3 views
5

Ho implementato un riepilogo degli errori in base a questa example here:jquery validate: come visualizzare e nascondere il riepilogo degli errori?

mentre ho capito per visualizzare, non ho la minima idea di come nascondere una volta non ci sono errori rimanenti.

devo fiddle here dimostrarlo:

tipo in qualsiasi cosa in uno dei due campi, mentre i messaggi di errore andare via, la sintesi rimane. Ci deve essere un evento a cui devo iscrivermi, ma non riesco a capirlo.

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

}); 

risposta

4

utilizzare l'opzione errorContainer. In questo modo visualizzare/nascondere gli elementi specificati quando la forma diventa valido/non valido

errorContainer: { "# validation_summary"}

esempio è il http://jsfiddle.net/eDk2m/7

modifica dopo aver letto commenti

c'è un evento da collegare - un buon esempio è nella pagina custom-methods-demo.html delle demo del plugin. Assomiglia a questo

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

Questa è una buona soluzione. +1 da me. Speravo che ci fosse un tipo di funzione in cui potevo collegare per rendere l'intestazione della scheda anche in rosso e rimuovere il rosso una volta scomparsi gli errori. Come in questo fiddle: http://jsfiddle.net/houmie/Nf8xY/6/ Pensi che ci sia un modo per rendere il TAB B rosso quando ci sono errori e rimuovere lo stile quando non ci sono errori? Letteralmente un evento da collegare? – Houman

+0

c'è un evento. è "invalid-form.validate". Modificherò la risposta in quanto posso formattare del codice –

+0

Grazie a me che mi ha aiutato nella giusta direzione. C'è ancora un problema con esso. BUt Meglio iniziare una nuova domanda. – Houman