Richfaces - Получить элемент по идентификатору

Мы используем Richfaces в одном из наших проектов.

Мне нужно сосредоточить элемент динамически на некоторых действиях пользователя. Проблема здесь в том, что у меня есть только id (JSF, который я передаю элементу.)

Например: для h:inputText Я использую его как

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

и это поле ввода встроено в отдельную форму. Когда я включаю поле ввода в форму, идентификатор поля ввода будет: formName:userNameInputBox (<<formName>>:<<elementId>>)

Я буду повторно использовать поле ввода в нескольких JSP. Это означает, что я не знаю родительскую форму, в которую я буду включать поле ввода.

Теперь мне нужно сфокусировать() поле ввода. В настоящее время я не могу это сделать, поскольку у меня нет фактического сгенерированного id (<<formname>>:<<elementId>>), но у меня есть только определенный JSF-идентификатор, который я дал.

Как я могу сфокусировать элемент на работе?

Ответ 1

Используйте функцию тегов RichTaces #{rich:clientId( JSF_ID )}, чтобы получить соответствующий идентификатор клиента для компонента. Если вам нужен элемент внутри дерева DOM, вы можете получить его непосредственно с помощью #{rich:element( JSF_ID )}

Пример: onclick="#{rich:element('userNameInputBox')}.focus()"

Я считаю, что вам нужно RichFaces 3.2.0 или выше для этого.

Документация по Функции взаимодействия Richfaces JS