簡體   English   中英

無法獲取jQuery autoComplete進行過濾

[英]Can't get jQuery autoComplete to filter

嗨,我正在嘗試使jQuery的autoComplete ui正常工作。

目前,我有一個asp.net文本框,正在調用Web服務並將此列表的結果鏈接到文本框。 我正在調用的Web服務從SQL數據庫獲取未經過濾的結果列表。

public List<string> getAutoCompleteList() {
    DataSet dsAutoList = getAutoList();
    DataTable dtAutoList = dsAutoList.Tables[0];
    List<string> lstTitles = new List<string>();
    foreach (DataRow drAutoList in dtAutoList.Rows)
    {
        //zAutolist = zAutolist + drAutoList["course_title"].ToString();
        lstTitles.Add(drAutoList["course_title"].ToString());
    }

    return lstTitles;
}

將此列表分配給文本框的javascript是(加載時)

function autoComplete() {
    $(".txtSearch").autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "/webservice/wsJQueryAutoComplete.asmx/getAutoCompleteList",
                dataType: "json",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                //dataFilter: function(data) { return data; },
                success: function(data) {
                    response($.map(data.d, function(item) {
                        return { value: item }
                    }))
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    alert(textStatus);
                }
            });
        },
        minLength: 3    // MINIMUM 3 CHARACTER TO START WITH.
    });
}

一切都很好,如果我開始在文本框中輸入內容,則會顯示結果,但問題是結果列表未根據我在搜索框中鍵入的內容進行過濾,它只顯示列表中的每個項目,而不會不管輸入什么內容,都對其進行過濾。

有人可以花幾分鍾時間讓我知道我在做什么錯嗎?

謝謝,克雷格

由於您不想基於輸入動態填充搜索詞,因此必須在初始化自動完成功能之前將搜索項填充到數組中,即將$ .ajax調用移至自動完成功能之外:

$.ajax({
    url: "/webservice/wsJQueryAutoComplete.asmx/getAutoCompleteList",
    dataType: "json",
    type: "POST",
    contentType: "application/json; charset=utf-8",
    // Changed here:
    success: function(data) {
        $(".txtSearch").autocomplete({
             source: data.d
        });
    }
});

因此,在初始化jquery自動完成時,您將傳遞一個預填充的數組作為源參數,這將導致過濾器作用於靜態列表。

$(".txtSearch").autocomplete({
    source: prepopulatedList
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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