Java JSF
ourysho
Messages postés
34
Statut
Membre
-
ourysho Messages postés 34 Statut Membre -
ourysho Messages postés 34 Statut Membre -
Bonjour,
j'ai un souci pour faire la tabulation du boutton clavier lorsque je navigue entre les champs. l'ordre voulu est le 1-2-3-4-5 mais la tabulation me donne cet ordre là : 1-2-5-3-4-7.
précision: (1,2),(3,4),(8,9) c'est le même composant<h:inputText/> qui est réutilisé.
voir extrait code
et et le input numero 7 donne
pas pratique d'utiliser tabIndex=val car un même input est réutilisé plusieurs fois c'est un formulaire générique donc l'index peut varier selon les cas
. Si vous avez un piste à me proposer pour résoudre ce problème je vous remercie
j'ai un souci pour faire la tabulation du boutton clavier lorsque je navigue entre les champs. l'ordre voulu est le 1-2-3-4-5 mais la tabulation me donne cet ordre là : 1-2-5-3-4-7.
précision: (1,2),(3,4),(8,9) c'est le même composant<h:inputText/> qui est réutilisé.
voir extrait code
<h:panelGrid columns="4" columnClasses="verticalAlignMiddle" cellspacing="0"
cellpadding="0">
<h:inputText style="width:#{col.gr.textLangRenderer.size};" id="textLang1"
value="#{col.formInputValue} onkeydown="cancelEnterKey()" maxlength="#
{col.gr.textLangRenderer.maxLength}" />
<h:outputText value=" "/>
<h:inputHidden id="keyLang" value="#{col.keyDataLang}" />
<v:imageButton imageURL="images/globe2.png" actionListener="#
{formulairesManagedBean.selectDataLang}" />
</h:panelGrid>
et et le input numero 7 donne
<h:inputText style="width:#{col.gr.textRenderer.size};" id="texte1"
value="# {col.formInputValue}" rendered="#{col.gr.textRenderered}"
onkeydown="cancelEnterKey()" maxlength="#
{col.gr.textRenderer.maxLength}" >
</h:inputText>
pas pratique d'utiliser tabIndex=val car un même input est réutilisé plusieurs fois c'est un formulaire générique donc l'index peut varier selon les cas
1 réponse
-
Bonjour,
Le tabIndex est pourtant une bonne piste, par contre il faut lui donner une valeur dynamique, par exemple à l'aide d'une méthode qui incrémente un index à chaque appel.
tabindex="#{formulairesManagedBean.getTabIndex}"private int tabIndex=0; public int getTabIndex() { return tabIndex++; }-
-
Ce n'est pas grave qu'il varie, peu importe que les valeurs du tabIndex change pour un même composant d'un cas sur l'autre, la seule chose importante c'est que ce soit en ordre croissant au moment où le formulaire est affiché.
On peut également aller plus loin, en utilisant une Map côté Java qui va faire le lien entre le composant et sa valeur de tabindex.
Exemple (à vérifier)
tabindex="#{formulairesManagedBean.getTabIndex['monComposant']}"private Map<String, Object> tabindex = new TreeMap<String, Object>(); public Map<String, Object> getTabIndex() { return tabIndex; }
Il faudra évidement que côté Java tu initialises à un moment le tabindex pour chaque composant :
tabindex.put("monComposant", 3);
-