2009-10-30 13 views
11

Stiamo usando Richfaces in uno dei nostri progetti.Richfaces - Ottieni elemento per ID

Ho bisogno di focalizzare l'elemento dinamicamente su qualche azione dell'utente. Il problema qui è ho solo l'id

Ad esempio (JSF specifico id che do all'elemento.): Per h:inputText utilizzare come

<h:inputText id="userNameInputBox" value="<<some binding>>/> 

e questo campo viene incorporato in forma separata . Quando includo la casella di input nel modulo, l'ID della casella di input sarà: formName:userNameInputBox (<<formName>>:<<elementId>>)

Riscriterò la casella di input in più JSP s. Ciò significa che non conosco la forma genitoriale in cui includerò la casella di input.

Ora, ho bisogno di mettere a fuoco() la casella di input. Al momento non sono in grado di farlo perché non ho l'id effettivo generato (<<formname>>:<<elementId>>) ma ho solo l'ID specifico JSF che ho dato.

Come è possibile eseguire la messa a fuoco dell'elemento?

risposta

15

Utilizzare la funzione di tag RichFaces #{rich:clientId(JSF_ID)} per ottenere l'ID client appropriato per un componente. Se è necessario l'elemento all'interno dell'albero DOM, si può ottenere direttamente con #{rich:element(JSF_ID)}

Esempio: onclick="#{rich:element('userNameInputBox')}.focus()"

Credo che hai bisogno RichFaces 3.2.0 o superiore per far funzionare tutto questo.

La documentazione relativa Richfaces JS Interaction functions

+0

C'è un supplente per primefaces per raggiungere questo obiettivo? Grazie! –