我是jQuery和JSON中的新手,花了好几个小时但仍未解决问题
来自服务器的JSON有效,通过jsonlit.com检查但它仍显示所有数据(未过滤)。
来自serverURI.asp的JSON
["A. ASRUNADI", "A. MURSYID", "A. RIFANI", "A.Z MAKMUR IS", "ABBAS", "ABDI IRWANTO"]
我的jquery
$("#keyword").autocomplete({
source: function(request, response){
$.getJSON("serverURI.asp", function(data){
var source = data
response(source);
});
}
});
但......当我把JSON作为var放在jquery中时它的作品...... 同时我已经在我的html元标记中使用了utf-8
$(function() {
var availableTags = ["A. ASRUNADI", "A. MURSYID", "A. RIFANI", "A.Z MAKMUR IS", "ABBAS", "ABDI IRWANTO"];
$("#keyword").autocomplete({
source: availableTags
});
});
我的ASP(经典)生成JSON如下
dim strResultEMP
strResultEMP = "["
for strEmpCount = 0 to strTotalCountEmp
strEmpObj = split(strEmpSplit(strEmpCount), "$$$")
if strEmpCount < strTotalCountEmp then
strResultEMP = strResultEMP & """" & ucase(strEmpObj(1)) & """" & ", "
else
strResultEMP = strResultEMP & """" & ucase(strEmpObj(1)) & """" & ""
end if
next
strResultEMP = strResultEMP & "]"
response.write strResultEMP
仅供参考,我使用JSON2.asp和JSON UTIL,但它仍然相同。 调试并捕获服务器响应我使用Firebug。
答案 0 :(得分:6)
如果您不想在服务器端进行过滤,则应该为源发出AJAX请求,然后将该源传递给自动完成小部件:
$(function () {
/* Make the AJAX request once for the source array: */
$.getJSON("serverURI.asp", function (data) {
/* Initialize the widget with the data we got back: */
$("#keyword").autocomplete({
source: data
});
});
});
请记住,如果您拥有大量数据,这可能会降低用户浏览器的速度。如果你有很多(> 500)项,我强烈建议你在服务器上进行过滤。