Javascript Can';无法获取jQuery自动完成以进行筛选
嗨,我正在尝试让jQuery的自动完成ui工作 目前我有一个asp.net文本框,我正在调用一个Web服务并将此列表的结果链接到文本框。我调用的Web服务从SQL数据库获取未筛选的结果列表Javascript Can';无法获取jQuery自动完成以进行筛选,javascript,jquery,asp.net,autocomplete,Javascript,Jquery,Asp.net,Autocomplete,嗨,我正在尝试让jQuery的自动完成ui工作 目前我有一个asp.net文本框,我正在调用一个Web服务并将此列表的结果链接到文本框。我调用的Web服务从SQL数据库获取未筛选的结果列表 public List<string> getAutoCompleteList() { DataSet dsAutoList = getAutoList(); DataTable dtAutoList = dsAutoList.Tables[0]; List<stri
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;
}
如果我开始在文本框中输入,结果就会出现,但问题是,结果列表没有根据我在搜索框中输入的内容进行过滤,它只显示列表中的每个项目,并且无论我输入什么,都不会进行过滤
有人能抽出几分钟让我知道我做错了什么吗
谢谢,
Craig由于您不想根据输入动态填充搜索词,因此必须在初始化自动完成之前将搜索项填充到数组中,即将$.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
});
您并没有将文本框中键入的数据发送到ajax调用,在此基础上您可以获得过滤列表,相反,当您向服务器发送请求时,它会返回整个列表,并将搜索到的术语也发送到服务器,如
数据:{term:request.term}
并在服务器中实现过滤器logic@Deepanshu我想对服务器进行的唯一调用是获取用户所有可用标题的完整列表。我认为jquery autocomplete函数会根据用户在搜索框中键入的内容过滤这个列表,而不必一次又一次地返回服务器。不是这样吗?意味着即使输入xyz这样的随机字符串,它也会显示整个列表?是的,只要输入3个或更多字符,列表就会完全未过滤
$(".txtSearch").autocomplete({
source: prepopulatedList
});