2010-11-24 3 views
1

Est-il possible de référencer l'attribut required d'un contrôle JSF h:inputText depuis JavaScript? Il s'agit d'une page qui ne peut pas utiliser AJAX et je souhaite définir l'attribut required en fonction de la valeur dans un autre champ de texte.Référence Attributs du contrôle JSF via JavaScript

+0

Trouvé quelques articles: http: // localhost: 8080/formulaire-demande/pages/heures supplémentaires/heures supplémentaires-n.seam et ceci: http://illegalargumentexception.blogspot.com/2009/10/jsf-working- with-component-identifiers.html – Alex

+1

le premier lien doit être une faute de frappe. Il pointe vers votre localhost;). – CoolBeans

+1

Le deuxième lien est plutôt bon. Merci de l'avoir partagé Alex. – CoolBeans

Répondre

3

Je souhaite définir l'attribut requis en fonction de la valeur dans un autre champ de texte.

Ensuite, il suffit de cocher que dans l'attribut required.

E.g. quand vous voulez le laisser dépendre si l'autre champ est rempli ou non:

<h:inputText value="#{bean.input1}" binding="#{input1}" /> 
<h:inputText value="#{bean.input2}" required="#{not empty input1.value}" /> 

Ou quand il doit être une valeur spécifique au lieu, par exemple "foo".

<h:inputText value="#{bean.input1}" binding="#{input1}" /> 
<h:inputText value="#{bean.input2}" required="#{input1.value == 'foo'}" /> 

Gardez les choses simples.

+0

+1 Comme toujours BalusC génial! – CoolBeans

+0

Très agréable, BalusC. Merci - exactement ce dont j'avais besoin :) Simple et élégant aussi – Alex

+0

De rien. – BalusC

2

Vous ne pouvez pas "accéder" aux attributs JSF à partir de Javascript. Les attributs vivent sur une autre machine où le Javascript s'exécute.

Je pense que vous pouvez écrire le JSF pour générer un Javascript intégré qui dépend des contrôles JSF. Mais je soupçonne que vous aurez besoin de créer et d'utiliser vos propres contrôles JSF pour y arriver.

(je généralise de JSTL ... et JSPs mais je pense que les mêmes principes.)

+0

Merci. S'il vous plaît voir mon commentaire ci-dessus. – Alex

1

Il est impossible à ma connaissance. Java Script s'exécute côté client, les contrôles JSF sont côté serveur.

Cependant, je pense que vous pouvez utiliser ajax push et lier la valeur des attributs requis en fonction de la valeur que quelqu'un tape dans un champ de texte. Jetez un oeil à un cadre comme iceFaces qui offre une telle fonctionnalité. Mais cela s'éloigne du script Java.

Questions connexes