【问题标题】:jsf f:ajax does not render immediatelyjsf f:ajax 不会立即呈现
【发布时间】:2011-07-19 21:51:32
【问题描述】:

我有一个这样的标签:

<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 中的文本时,更改不会立即发生,而是我必须单击页面上的任何内容才能在数据表中获得所需的结果。

有人知道如何解决这个问题吗?

提前致谢。

【问题讨论】:

    标签: java ajax jsf-2


    【解决方案1】:

    在 HTML 输入文本元素上,HTML DOM change 事件仅在元素的值已更改并且元素失去焦点(即 blur 事件也已被触发)时触发)。单击页面上的任何其他位置或切换到下一个元素将触发blur 事件。所以描述的症状完全符合指定的行为。

    您可能正在寻找keyupkeypress 事件。请记住,这会在每次击键时触发 Ajax 请求,这并不一定便宜。

    请注意,此问题与 JSF 无关,因为它生成并发送到网络浏览器的所有内容毕竟只是普通的 HTML/JS 代码。

    【讨论】:

    • 非常感谢!! keyup 的东西完成了这项工作。如果它为每次击键返回结果也很好。
    • 也在这个笔记上,我在哪里可以找到完整的事件列表?
    • 一般的 HTML DOM 教程/参考应该有这样的概述。 Here's an example(想想“on”前缀)。您可以找到另一个概述和出色的兼容性表here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多