[英]jsf.ajax.request not working completely
我試圖制作一個自定義自動填充框,但遇到了一些麻煩。 現在我有一個輸入,可以在按下鍵盤時調用此函數
function pingAutoComplete(event)
{
console.log("pingAutoComlete Called");
window.clearTimeout(window.keyTimeout);
//Wait 2 seconds before we attempt to pingAutoComplete incase user has not finished typing
window.keyTimeout = setTimeout(function() {
jsf.ajax.request(event, "keydown", {execute:'searchTerm',render:'autoCompletePanel'})
autoCompleteLayoutPanel.show();
return false;
}, 2000);
return false;
}
自動完成面板包含一系列如下所示的選擇
<h:selectOneListbox id="vehicleResult" title="Vehicles"
value="#{searchBean.searchTerm}"
converter="entityConverter"
required="false"
rendered="#{!searchBean.filterAutoComplete().isEmpty()}">
<f:selectItems value="#{searchBean.filterAutoComplete()}"
var="searchItem" itemValue="#{searchItem}"
itemLabel="#{searchItem.displayString}"
itemLabelEscaped="true" />
</h:selectOneListbox>
現在,當調用javascript時,似乎在后端點擊了searchBean.filterAutoComplete(),但實際上並沒有更新gui中的選擇列表。 有人知道為什么嗎?
您必須指定確切的客戶端ID。 那是生成的HTML元素的id
屬性的值,而不是JSF組件本身的id
屬性的值。 如果JSF組件放置在<h:form>
,則默認情況下,客戶端ID之前將帶有其ID。
因此,以下小組
<h:form id="form">
<h:panelGroup id="autoCompletePanel">
客戶端ID的form:autoCompletePanel
。 您需要在render
屬性中確切指定該ID。 相同的規則也適用於順便execute
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.