2017-02-27 112 views
0

鑑於Autocomplete Widget的documentation for the search method,我期望調用此方法的按鈕將顯示一個包含可用選擇列表的框。什麼都沒發生。JQuery-UI自動完成搜索()不顯示DropDownList

我有下面的代碼,在文本框中創建自動完成構件:

$("#StateListCoolBox").autocomplete({ 
    source: StateListCoolBoxTags, 
    focus: function(event, ui) { 
     $("#StateListCoolBox").val(ui.item.label); 
     return false; 
    }, 

    select: function(event, ui) { 
     $("#StateListCoolBox").val(ui.item.label); 
     $("#StateListCoolBox-id").val(ui.item.value); 
     return false; 
    } 
}); 

它工作正常。

我有以下代碼附加到按鈕我想顯示列表。它被調用但沒有任何反應:

function StateListCoolBox_dropDownClick() { 
    $("#StateListCoolBox").autocomplete("search", ""); 
}; 

我已經在相應的文本框和文本框中用空格對文本進行了測試。

如何獲取按鈕的行爲與DropDown Combo上的按鈕相似,以便在單擊時顯示可用選擇列表?

回答

1

如果你看一下「查看源文件」這一:http://jqueryui.com/autocomplete/#combobox

您將看到:

_createShowAllButton: function() { 
    var input = this.input, 
     wasOpen = false; 

    $("<a>") 
     .attr("tabIndex", -1) 
     .attr("title", "Show All Items") 
     .tooltip() 
     .appendTo(this.wrapper) 
     .button({ 
     icons: { 
      primary: "ui-icon-triangle-1-s" 
     }, 
     text: false 
     }) 
     .removeClass("ui-corner-all") 
     .addClass("custom-combobox-toggle ui-corner-right") 
     .on("mousedown", function() { 
     wasOpen = input.autocomplete("widget").is(":visible"); 
     }) 
     .on("click", function() { 
     input.trigger("focus"); 

     // Close if already visible 
     if (wasOpen) { 
      return; 
     } 

     // Pass empty string as value to search for, displaying all results 
     input.autocomplete("search", ""); 
     }); 
    } 

因此,這顯示了所有的結果進行文本字段觸發焦點事件。

如何獲取按鈕的行爲與DropDown Combo上的按鈕相似,以便在單擊時顯示可用選擇列表?

我認爲這符合你想要完成的。所以儘量用minLength: 0如下:

function StateListCoolBox_dropDownClick() { 
    $("#StateListCoolBox").trigger("focus").autocomplete("search", ""); 
}; 

也就是說,應該沒有錯,你的方法:

觸發search事件並調用數據源,如果沒有被取消的事件。可以通過類似於選擇框的按鈕在單擊時打開建議。當不帶參數調用時,將使用當前輸入的值。可以用空字符串調用,並且minLength: 0顯示所有項目。

您目前的代碼完全缺失:minLength: 0。如果你喜歡,請嘗試兩種。