簡體   English   中英

jsf.ajax.request無法完全正常運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM