Richfaces - получить элемент по идентификатору - PullRequest
11 голосов
/ 30 октября 2009

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

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

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

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

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

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

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

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

1 Ответ

15 голосов
/ 05 ноября 2009

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

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

Полагаю, вам нужен RichFaces 3.2.0 или выше, чтобы это работало.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...