2011-03-21 84 views
3

我有这样的标签:JSF F:AJAX并不使立即

<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的文本,改变不是马上发生,而是我必须点击任何页面才能在数据表中获得所需的结果。

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

在此先感谢。

回答

3

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

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

请注意,这个问题与JSF没有特别的关系,因为它生成并发送到浏览器的所有内容都是纯粹的HTML/JS代码。

+0

非常感谢你!关键的事情做的工作。如果它返回每个按键的结果,也很好。 – Ikthiander 2011-03-21 18:43:40

+0

不客气。 – BalusC 2011-03-21 18:43:53

+0

也在这个笔记上,我在哪里可以找到完整的事件列表? – Ikthiander 2011-03-21 19:09:34