Richfaces - Obter elemento por id
-
22-07-2019 - |
Pergunta
Estamos usando Richfaces em um de nossos projetos.
Eu preciso focar o elemento dinamicamente em alguma ação do usuário. A questão aqui é que eu só tenho a id (id JSF específico que eu dou a elemento.)
Por exemplo: para h:inputText
eu usá-lo como
<h:inputText id="userNameInputBox" value="<<some binding>>/>
e esta caixa de entrada é incorporado de forma separada. Quando eu incluir a caixa de entrada no formulário, o ID da caixa de entrada será: formName:userNameInputBox (<<formName>>:<<elementId>>)
Eu vou ser re-utilizando a caixa de entrada em vários JSP s. Isso significa que, eu não sei o formulário pai em que vou incluir a caixa de entrada.
Agora, preciso me concentrar () caixa de entrada. Atualmente eu não sou capaz de fazer isso como eu não tenho o id gerado real (<<formname>>:<<elementId>>
), mas eu só tenho a id JSF específica que eu dei.
Como posso fazer focando o elemento trabalho?
Solução
Use a função RichFaces tag #{rich:clientId( JSF_ID )}
para obter o ID de cliente apropriado para um componente. Se você precisa do elemento dentro da árvore DOM, você pode obtê-lo diretamente com #{rich:element( JSF_ID )}
Exemplo:
onclick="#{rich:element('userNameInputBox')}.focus()"
Eu acredito que você precisa RichFaces 3.2.0 ou superior para que isso funcione.
A documentação sobre funções Richfaces JS Interação