2013-01-02 62 views
3

我正在嘗試一種搜索功能,該功能應該通過點擊事件或模糊事件來調用bean的方法,該事件首先被調用。我需要這兩個事件,因爲每當用戶輸入的東西,它應該顯示結果,如果用戶已複製並粘貼到搜索框然後也應該工作。因爲在第二種情況下沒有關鍵事件,所以我需要模糊事件。我試圖把像他們之間的分隔符:通過兩個事件之一調用單個eventlistener?

<f:ajax event="keyup blur" listener="#{mybean.search}" render="something"> 

也喜歡

<f:ajax event="keyup,blur" listener="#{mybean.search}" render="something"> 

它沒有工作

所以,現在我用我的代碼

<p:inputText value="#{mybean.search}" > 
      <f:ajax listener="#{mybean.searchByIdListener}" event="keyup" render="datatable"/> 
      <f:ajax listener="#{mybean.searchByIdListener}" event="blur" render="datatable"/> 
</p:inputText> 

但是這個代碼兩次調用事件監聽器。如果事件監聽器只被這兩個事件中的任何一個首先調用一次,那將會很好。

回答

0

不確定關於primefaces,但在richfaces中,您可以使用ajax支持並調用多個事件。 否則您能使用focus事件嗎?

+0

我primefaces它有一個標籤爲p:AJAX類似於到j:阿賈克斯。我也使用過這個標籤。但結果相同。並且焦點事件對我不起作用bcoz我想在用戶在搜索文本框中輸入內容時調用eventlistener。 –

0

爲什麼不使用這樣的事情:

<p:inputText onchange="" /> 

從用戶指南:

Client side callback to execute when input element loses 
focus and its value has been modified since gaining focus. 
+0

Thanx回覆。實際上,對於搜索方法,我需要在用戶在事件關鍵字上輸入任何文本時顯示結果。如果用戶通過鼠標將文件複製並粘貼到文本框中,那麼當用戶將刪除焦點時,鍵盤事件不會被觸發,那麼我想調用模糊事件。因爲我有單個輸入法調用相同的方法,我不能使用onchange attr兩個事件的要求。 :( –

+0

如果你仍然想使用這兩個事件,添加變量,這將顯示,如果第一個事件被執行 – Darka

+0

我認爲這不是一個好主意becoz假設keyup事件被執行然後我也要檢查刪除和退格鍵。用戶輸入了一些內容然後刪除它,之後他通過鼠標複製粘貼它,現在它不會執行bcoz它已經被keyup執行了,所以我認爲它是一個很好的解決方案。 –

相關問題