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