2010-03-07 2 views
0

J'ai un formulaire avec 3 champs (exemple simplefied).problème avec jsf/icefaces dépend des champs de formulaire et de la validation

La première est une case à cocher.

<ice:selectBooleanCheckBox value="#{backingBean.bean.visible}" ID="checkbox1" partialSubmit="true" >

Le second est un

<ice:inputText ID="text1">

La troisième est également une

<ice:inputText ID="text2" required="true" validator="mycustomvalidator">

Text1 ne doit être visible lorsque CheckBox1 est vérifiée. text2 est un champ obligatoire et possède un ensemble customvalidator. Donc ma première approche en utilisant simplement # {backingBean.bean.visible} a échoué parce que text2 a été requis et qu'un message de validation est apparu (après avoir cliqué sur la case à cocher) lorsque le champ text2 est vide. En raison de cette erreur de validation, le formulaire n'a jamais été entièrement soumis de sorte que la propriété visible est définie (la phase de mise à jour du modèle n'a jamais été atteinte).

J'ai également essayé d'utiliser immediate = "true" pour selectBooleanCheckBox mais cela n'a eu comme conséquence que le message de validation pour le requis = "true" disparu mais la validation de mycustomvalidator toujours déclenchée.

Donc, ma question: comment puis-je m'assurer que text1 n'est visible que lorsque l'on clique sur checkbox1? Merci.

+1

Pour être sûr: le '{#blabla}' est-il une faute de frappe ou est-ce aussi le code ** réel **? Il devrait bien sûr être dans la syntaxe '# {blabla}'. – BalusC

+1

Je suppose que c'est 'CheckBox', pas' TextBox', et aussi que vous avez des guillemets autour de chaque argument. – Bozho

+0

@BalusC, Bozho: à la fois vrai et fixe – hugri

Répondre

0

Pour donner une réponse ici, je pense que la meilleure solution est d'utiliser Javascript côté client pour cacher/montrer les éléments.

Questions connexes