We are using Richfaces in one of our projects.
I need to focus the element dynamically on some user action. The issue here is I only have the id (JSF specific id that I give to element.)
For example: for h:inputText
I use it as
<h:inputText id="userNameInputBox" value="<<some binding>>/>
and this input box is embedded in separate form. When I include the input box in form, the id of the input box will be: formName:userNameInputBox (<<formName>>:<<elementId>>)
I will be re-using the input box in multiple JSPs. That means, I do not know the parent form in which I will include the input box.
Now, I need to focus() the input box. Currently I am not able to do this as I do not have the actual generated id (<<formname>>:<<elementId>>
) but I only have the JSF specific id I gave.
How can I make focusing the element work?
Use the RichFaces tag function #{rich:clientId( JSF_ID )}
to get the appropriate client id for a component. If you need the element inside the DOM tree, you can get it directly with #{rich:element( JSF_ID )}
Example:
onclick="#{rich:element('userNameInputBox')}.focus()"
I believe you need RichFaces 3.2.0 or higher for this to work.
The documentation on Richfaces JS Interaction functions
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With