Bonjour,
le problème du jour me laisse perplexe : il s'agit de rendre obligatoire certains champs en fonction de la valeur d'un autre champ (une liste de sélection pour être précis).
Je pensais la chose très simple, mais après qqs heures de cuisine, je n'ai pas réussi à faire ce que je voulais ; quoi que je fasse, je n'arrive jamais à faire en sorte que la valeur associée à "required" soit réévaluée. A la place, elle reste toujours égale à sa première validation.
Si quelqu'un a une idée, je suis tout ouïe.
Mon code ci-dessous (épuré pour la lisibilité) :
PS : je précise que la valeur ici testée pour le type signifie que je veux rendre les champs obligatoires SI un type est renseigné. Par défaut, il n'y en a aucun. Une petite alerte javascript m'a confirmé que la valeur est bien évaluée au moment du changement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <h:form id="createAccountForm"> <a4j:outputPanel> <fieldset> <t:selectOneMenu id="type" value="#{monBean.unObjet.type}" > <a4j:support event="onchange" reRender="monForm:mutableRegion"/> <f:selectItems value="#{monBean.listeTypes}" /> </t:selectOneMenu> <a4j:outputPanel id="mutableRegion" ajaxRendered="true"> <h:inputText id="cle" label="#{bundle.key}" value="#{monBean.unObjet.key}" maxlength="2" required="document.getElementById('monForm:type').value != ''"> <f:validator validatorId="keyValidator" /> </h:inputText> <h:inputText id="code" label="#{bundle.code}" value="#{monBean.unObjet.code}" maxlength="9" required="document.getElementById('monForm:type').value != ''"> <f:validator validatorId="codeValidator" /> </h:inputText> </a4j:outputPanel> </fieldset> </a4j:outputPane </h:form>
Partager