jsf f: ajax не рендерит сразу - PullRequest
3 голосов
/ 21 марта 2011

У меня есть такой тег:

<h:inputText size="30" immediate="true">
   <f:ajax event="change" listener="#{someMethod}" render="someDataTable"/>
</h:inputText>

У меня есть такой тип данных:

<h:dataTable value="#{someList}" var="anyVar" id="someDataTable">some things
</h:dataTable>

, когда я изменяю текст в inputText, изменение не происходит сразуСкорее, мне нужно нажать на странице, чтобы получить требуемый результат в таблице данных.

Кто-нибудь знает, как решить эту проблему?

заранее спасибо.

1 Ответ

3 голосов
/ 21 марта 2011

В текстовых элементах ввода HTML событие HTML DOM change вызывается только тогда, когда значение элемента было изменено и элемент теряет фокус (т. Е. Событие blur также было вызвано) , Нажатие в любом другом месте страницы или переход к следующему элементу вызовет событие blur. Таким образом, описанные симптомы идеально соответствуют указанному поведению.

Возможно, вы ищете событие keyup или keypress. Имейте в виду, что при каждом нажатии клавиши запускается запрос Ajax, который не обязательно дешев.

Обратите внимание, что эта проблема конкретно не связана с JSF, поскольку все, что она генерирует и отправляет веб-браузеру, это всего лишь простой код HTML / JS.

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