2011-03-21 88 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