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