2012-04-17 18 views
6

Sto usando il jQuery Validation PluginjQuery convalida visualizza gli errori come inline per impostazione predefinita, necessario modificare questo per inline-block

Come faccio a cambiare i messaggi di errore generati display valore inline-block quando non è nascosto?

Ho provato con CSS ma il jQuery sovrascrive questo.

+0

Dov'è il tuo codice? Cosa hai fatto fino ad ora? – Sparky

+0

Ciao, sfortunatamente questo è un progetto interno quindi non posso indirizzarti a un link. Sto cercando di trovare dove il jquery dice al codice di aggiungere display: in linea con l'etichetta di errore quando viene visualizzato, e modificare quello per visualizzare: blocco in linea –

+0

Non ti ho chiesto di pubblicare un link. Tuttavia, basta guardare all'interno del plugin e personalizzare secondo necessità ... è solo jQuery/JavaScript. – Sparky

risposta

4

Utilizzare l'opzione errorClass per specificare la classe assegnata ai messaggi di errore e gli elementi di errore:

$(".selector").validate({ 
    errorClass: "invalid" 
}) 

<style type="text/css"> 
    .invalid { 
    display: inline-block !important; 
    } 
</style> 

Vedere la documentazione per le opzioni del validatore:

http://docs.jquery.com/Plugins/Validation/validate#options

+4

Con questo, è impossibile nascondere gli errori una volta che il campo è valido – jetlej

+1

Concordato con @jetlej, Questo interrompe la funzionalità di convalida come display: nessuno generato dal plugin per nascondere il messaggio di errore di convalida non necessario non viene più ascoltato a causa di! important. –

0

Se si utilizza !important sul CSS, dovrebbe avere la precedenza su quello che fa jQuery:

.error { 
    display: inline-block !important; 
} 
+0

Grazie, l'ho provato ma non ha funzionato –

+0

Hmm, funziona per me ... Hai guardato in Firebug, o un altro debugger per vedere quale stile è applicato e cosa è facendo sì che il 'inline-block' non venga applicato? –

+0

Lo stile in linea del plug-in sovrascrive il CSS –

0

jQuery validate non ha nessuno stile CSS definito. Stai usando altre librerie con le definizioni CSS per la classe "error"?

Ecco JsFiddle codice di esempio con jQuery convalidare utilizzando inline-block per il messaggio di errore:

http://jsfiddle.net/maxim75/HKnQD/4/

.error 
{ 
    color: Red; 
    display: inline-block; 
}​ 

aprirlo e controllare nel browser:

enter image description here

+0

Ciao, grazie, l'ho capito ieri mentre testavo le risposte che ho ricevuto. Saluti –

5

Mi sono imbattuto in questo e non ho potuto usare CSS dato che jQuery sta usando i metodi show() e hide() sull'elemento error (che imposta "display: block;" inline) dopo la creazione iniziale. Invece puoi usare i metodi highlight e unhighlight del plugin validate per cambiare i css inline.

errorElement: 'em', 

highlight: function(element, errorClass) { 
    $(element).addClass(errorClass); // good for changing field backgrounds 
    $(element).next('em').css('display','inline'); // keeps error message layout clean 
}, 

unhighlight: function(element, errorClass) { 
     $(element).removeClass(errorClass); // good for changing field backgrounds 
     $(element).next('em').css('display','none'); // keeps error message layout clean 
}, 
+0

Grazie amico. Cheers –

+0

Questa è la risposta corretta – hamishtaplin

Problemi correlati