Question

J'ai le code JSF comme:

<h:inputText id="from" value="#{fromToMBean.fromName}"/>

Je voudrais obtenir cet élément de JavaScript par ID (from), mais je ne peux pas, parce que dans HTML généré est j_idt8:from

Comment puis-je obtenir cet élément dans exemple jQuery? Est-il possible de forcer JSF2 ne pas changer ids?

Était-ce utile?

La solution

Vous pouvez utiliser une classe personnalisée qui vous attribuez uniquement à cet élément et utiliser des sélecteurs css ou attribuer un identifiant à la forme et obtenir l'élément avec l'id formid:from.

Autres conseils

  

Est-il possible de forcer JSF2 ne pas changer ids?

Vous pouvez définir prependId="false" cette façon dans le code HTML généré, il sera à la place de j_idt8:. De

prependId: Drapeau indiquant si cette forme doit ou non préfixer  son id id de son descendant lors de la génération clientId  processus. Si ce drapeau est pas défini, la valeur par défaut est true.

  

Comment puis-je obtenir cet élément dans exemple jQuery?

Vous pouvez utiliser ancestorComponent:from jQuery pour obtenir cet élément.

En fait, j_idt8 j_idt8: de est généré automatiquement id du composant ancêtre de votre <h:inputText/>

par exemple

<h:form id="form">
<h:inputText id="from" value="#{fromToMBean.fromName}"/>
</h:form>

identifiant généré du texte d'entrée serait forme: de

Si vous ne fournissez pas id à un composant que votre navigateur génère dynamiquement que. Donc, ne pas oublier de fournir ids aux composants.

Dans JSF 1.2, vous pouvez utiliser forceId = "true". Je ne sais pas si vous pouvez utiliser t: entrée dans JSF 2, mais vous devriez pouvoir. Ensuite, il est en HTML ID sera ce que vous attendez.

Pour obtenir ID complet pour un composant, utilisez EL objets implicites et leurs propriétés telles que #{cc.clientId} et #{component.clientId}. Source: acquérir le préfixe complet pour un composant à l'intérieur de nommage clientId conteneurs avec JSF 2.0 .

Vous pouvez utiliser jquery. Il suffit, utilisez un sélecteur définissant le texte, il devrait contenir. Quelque chose comme ceci:

$( "input[name*='from']" )

'* =' est utilisé pour dire que l'attribut name contient une chaîne de caractères. il existe également '~ =' avec un sens similaire.

Pour des explications et des exemples détaillés visitez http://api.jquery.com/attribute-contains SÉLECTR /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top