JQuery自动完成输出问题
我已经看到这个问题贴了很多次了,就我的一生而言,我似乎无法解决这个问题。我有一个用于获取JSON的远程源,我可以看到JSON在控制台中返回,但我无法将其输出。我需要的是输出到自动完成的“描述”和“状态”。有人能告诉我哪里出了问题吗 以下是我的功能:JQuery自动完成输出问题,jquery,json,Jquery,Json,我已经看到这个问题贴了很多次了,就我的一生而言,我似乎无法解决这个问题。我有一个用于获取JSON的远程源,我可以看到JSON在控制台中返回,但我无法将其输出。我需要的是输出到自动完成的“描述”和“状态”。有人能告诉我哪里出了问题吗 以下是我的功能: $(function() { $( "#locationSearch" ).autocomplete({ source: function( request, response ) {
$(function() {
$( "#locationSearch" ).autocomplete({
source: function( request, response ) {
$.ajax({
type: "GET",
url: "https://www.datasample.com/Services/AutoComplete.ashx",
dataType: "jsonp",
data: {
term: request.term,
},
success: function( data ) {
response( $.map( data.results, function( result ) {
return {
label: result.Description,
value: result.State
}
}));
}
});
},
minLength: 3
});
});
下面是返回的JSON:
{“术语”:“波士顿”,“结果”:[{“描述”:“波士顿,马萨诸塞州”,“拉丁美洲”:0.0,“液化天然气”:0.0,“类别”:“城市”,“半径”:零”,州:{“描述”:“波士顿,纽约州”,“拉丁美洲”:0.0,“类别”:“城市”,“半径”:零,州:”,{“描述”:“波士顿高地,俄亥俄州”,“拉丁美洲”:0.0,“类别”:“城市”,“半径”:零,州:”:“哦”}
以下是HTML:
<input name="locationSearch" id="locationSearch" type="text" />
以下是一个示例
data = {"term":"Boston","results":[{"Description":"Boston, MA","Lat":0.0,"Lng":0.0,"Category":"City","Radius":null,"State":"MA"},{"Description":"Boston, NY","Lat":0.0,"Lng":0.0,"Category":"City","Radius":null,"State":"NY"},{"Description":"Boston Heights, OH","Lat":0.0,"Lng":0.0,"Category":"City","Radius":null,"State":"OH"}]};
$.map(data.results, function(result){
return {
label: result.Description,
value: result.State
}
});
输出
"[{"label":"Boston, MA","value":"MA"},{"label":"Boston, NY","value":"NY"},{"label":"Boston Heights, OH","value":"OH"}]"
我应该补充一点,我已经尝试将数据类型从“jsonp”更改为“json”,并获得了相同的结果。我认为您希望映射$.map(data.results),而不仅仅是数据。我也尝试了,并收到了一个错误“Uncaught SyntaxError:Unexpected token:”我发现我在函数标记中错误地键入了“result”,但即使这样,它仍然不起作用。我仍然返回相同的数据,只是没有进入自动完成。我编辑了上面的代码以反映更改。好的,我设法找到了问题。我漏掉了一个分号,这就把事情搞砸了。一旦我做了更改,我忘了将其设置回“Data:'json'”。一旦我这么做,它就开始神奇地工作了。谢谢你的帮助@Simon