2012-06-12 8 views
8

Ho un modulo con un sacco di inputText, quello che voglio è evidenziare quelli che non vengono riempiti con dati corretti.Evidenzia un inputText in JSF quando si verifica un errore di convalida

Ho provato a utilizzare "componente.valid", ma restituisce sempre che il campo non è valido (ad esempio, i campi sono sempre rossi).

questo è il codice:

<h:inputText value="#{creerPersonne1.nom}" id="nom" 
    style="#{not nom.valid ? 'border-color:red;' : 'border-color:black;'}"> 
    <f:validateRegex pattern="^[a-zA-Z]+$"></f:validateRegex> 
</h:inputText> 

questo è il risultato:

Always invalid

nota che il campo viene evidenziato anche quando la pagina viene caricata per la prima volta.

+1

Hai scritto 'componente.valid' nel testo ma il tuo codice mostra' nom.valid'. Hai provato il (corretto) 'component.valid'? –

risposta

20

È necessario utilizzare component.valid anziché nom.valid.

component è un oggetto EL implicito per il componente di ingresso corrente. E component.valid chiama il metodo del componente lato server. L'argomento id non può essere utilizzato in questo modo.

Così si dovrebbe modificare il codice come segue:

style="#{ component.valid ? 'border-color:black;' : 'border-color:red;'}" 

(non correlate ma si dovrebbe meglio utilizzare classi di stile invece di stili codificati duri L'assegno valido lavora per il styleClass attributo pure.).

+0

Infatti, ho pensato che il componente doveva essere sostituito dall'ID effettivo del componente:/ Grazie. – Eildosa

+0

A proposito, ho appena imparato il difficile modo in cui quelli non funzioneranno senza la dipendenza "in attesa di convalida" – Eildosa

Problemi correlati