2017-03-13 36 views
0

我有一個primefaces自動完成元素,除了一個thig以外,它的工作很棒。問題是,當我輸入一個有效的文本(它可以映射到後面的數據),但我沒有從命題中選擇元素,也沒有按Tab或Enter,沒有任何反應。trigger item在Primefaces自動完成上選擇事件

因此,我輸入一個值並單擊到另一個字段中,該元素未被選中,驗證失敗。但是,我不希望用戶強制顯式選擇一個項目。

我的想法是,我把一個onchange監聽器放入input元素並觸發內部的primefaces itemSelect事件。但我不知道該怎麼做,如果甚至可能的話。

或者也許還有其他解決方案? 在此先感謝!

回答

0

我找到了一種方式,雖然它可能不是最美麗和最容易的一種。 也許它可以幫助某人...

這是primefaces(5.3)的特定解決方案,但它也適用於其他版本。

$('#form\\:txtAutoComplete_input').val('Foo'); 
$('#form\\:txtAutoComplete_input').trigger('keydown'); 
$('#form\\:txtAutoComplete_input').trigger('input'); 
$('#form\\:txtAutoComplete_panel .ui-autocomplete-item').trigger('click'); 

由於某些原因,在將值輸入到輸入字段後,必須按照該順序觸發keydown和輸入事件。在這些事件之後,自動完成列表將顯示匹配的值。在這裏你必須觸發點擊某個元素,這樣所有的後臺bean都會正確執行。