【问题标题】:JQuery autocomplete output issueJQuery自动完成输出问题
【发布时间】:2016-02-09 05:59:48
【问题描述】:

我已经看到这个问题发布了很多次,在我的一生中,我似乎无法弄清楚这个问题。我有一个用于获取 JSON 的远程源,并且我能够看到 JSON 在控制台中返回,但我无法将其输出。我需要的是输出到自动完成的“描述:”和“状态”。有人可以告诉我哪里出错了吗?

这是我的功能:

$(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:

{"term":"Boston","re​​sults":[{"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, "州":"NY"},{"Description":"波士顿高地, OH","Lat":0.0,"Lng":0.0,"Category":"City","Radius":null,"State" :"OH"}]}

这是 HTML:

<input name="locationSearch" id="locationSearch" type="text" />

【问题讨论】:

  • 我应该补充一点,我尝试将 dataType 从“jsonp”更改为“json”,结果相同。
  • 我认为你想映射 $.map(data.results) 而不仅仅是数据。
  • 我也试过了,但收到一个错误“Uncaught SyntaxError: Unexpected token :”

标签: jquery json


【解决方案1】:

这是一个例子

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"}]"

【讨论】:

  • 我看到我在函数标签中输入了错误的“结果”,但即使这样它仍然不起作用。我仍然得到相同的数据返回,只是没有进入自动完成。我编辑了上面的代码以反映更改。
  • 好的,我设法找到了问题。我错过了一个分号,这把整个事情都扔掉了。那个,一旦我做了你的改变,我忘了把它设置回“数据:'json'”一旦我这样做了,一切都开始神奇地工作了。感谢您的帮助@Simon
猜你喜欢
  • 2014-08-31
  • 2010-12-04
  • 2011-08-08
  • 2013-01-22
  • 2016-05-31
  • 2011-10-08
  • 2011-11-16
  • 2017-06-19
相关资源
最近更新 更多