2013-01-31 9 views
5

Utilizzando il plugin jquery validate e sto tentando di sovrascrivere il comportamento predefinito. questo è un esempio del mio html:Jquery convalida il plugin come aggiungere la classe di errore all'etichetta

<table> 
<tr> 
    <td> 
    <label for="my-input>Name</label> 
    </td> 
</tr> 
<tr> 
    <td> 
    <input type="text" class="required" id="my-input /> 
    </td> 
</tr> 
</table> 

Tutto quello che voglio il valadate da fare è aggiungere il .error classe per l'etichetta esistente, e quindi rimuoverlo una volta che il campo passa convalida.

Grazie.

risposta

12

questo è il comportamento predefinito, è sufficiente interrompere il messaggio di errore visualizzato sulla pagina. È possibile farlo sovrascrivendo errorPlacement

$('form').validate({ 
errorPlacement: function() { } 
}); 

EDIT.

dispiace letto male il bit di domanda - il codice qui sotto opere, ma non v'è probabilmente un modo migliore

$('form').validate({ 
    // make sure error message isn't displayed 
    errorPlacement: function() { }, 
    // set the errorClass as a random string to prevent label disappearing when valid 
    errorClass : "bob", 
    // use highlight and unhighlight 
    highlight: function (element, errorClass, validClass) { 
     $(element.form).find("label[for=" + element.id + "]") 
     .addClass("error"); 
    }, 
    unhighlight: function (element, errorClass, validClass) { 
     $(element.form).find("label[for=" + element.id + "]") 
     .removeClass("error"); 
    } 
}); 

il codice di cui sopra deriva dall'esempio evidenziazione sul options docs

+0

Spot on. Grazie molto....!!!!! –

2
errorElement: "label", 
errorPlacement: function(error, element) { 
    error.insertBefore(element.parent().children("br")); 
}, 
highlight: function(element) { 
    $(element).parent().addClass("error"); 
}, 
unhighlight: function(element) { 
    $(element).parent().removeClass("error"); 
} 
Problemi correlati