【问题标题】:JSON for Jquery autocomplete用于 Jquery 自动完成的 JSON
【发布时间】:2010-11-15 13:28:49
【问题描述】:

我有来自 php 文件的 JSON 响应。

[{
  "NAME": "Kiev"
}, {
  "NAME": "Kiev metro"
}, {
  "NAME": "Kiev-Dnepro"
}, {
  "NAME": "Kiev-Dnepro"
}, {
  "NAME": "Kiev-Donetsk"
}, {
  "NAME": "Kiev-Donetsk"
}]

如何将其用于标准 Jquery 自动完成功能?自动完成功能确实请求,但似乎无法解析此 json 的响应(简单数组工作正常)。 请帮帮我


德林,是的,就是这样。工作正常!但现在我想稍微修改一下。我得到了更多数据作为响应,我想在主自动完成输入附近显示它

var infoGISName = null;
var infoGISType = null;
var infoGISLocationID = null;
var infoGISParentID = null;

$('#GISName').autocomplete({
source: function(request, response) {
  $.getJSON("autocomplete.php", {
    term: request.term
  }, function(result) {
    response($.map(result, function(item) {
      infoGISName = item.NAME;
      infoGISType = item.GIS_TYPE;
      infoGISLocationID = item.LOCATION_ID;
      infoGISParentID = item.PARENT_ID;
      return item.NAME;
    }));
  });
},
change: function(event, ui) {
  $('#infoGISName').html(infoGISName);
  $('#infoGISType').html(infoGISType);
  $('#infoGISLocationID').html(infoGISLocationID);
  $('#infoGISParentID').html(infoGISParentID);
},
minLength: 3

});
});

那么当我在自动完成输入中更改文本时,如何更改字段中的数据?现在我只看到 JSON 记录集中的最后一个值

【问题讨论】:

  • 您使用的是哪个插件?或者这是jQuery UI Autocomplete
  • 如果这是实际响应,那么它无论如何都不会工作,因为它缺少最后一个括号,因此不是有效的数组。
  • 您能否向我们展示更多您正在使用的代码,以便我们看到全貌?

标签: javascript jquery json jquery-ui


【解决方案1】:

您可以使用formatItem 选项:

$('#foo').autocomplete({ 
    url : '/foo', 
    formatItem: function(item, position, length) {
        return item.NAME;
    } 
});

对于 jquery ui 自动完成,您可以通过以下方式实现:

$('#foo').autocomplete({
    source: function(request, response) {
        $.getJSON('/foo.php', { q: request.term }, function(result) {
            response($.map(result, function(item) {
                return item.NAME;
            }));
        });
    }
});

【讨论】:

  • 我尝试使用jqueryui.com/demos/autocomplete,因为我下载了完整的JUI包
  • 你推荐我用另一个吗?
  • @Castro,请参阅我的更新以获取 jqueryui 自动完成的示例。
  • 德林,是的,就是这样。工作正常!但现在我想稍微修改一下。我得到了更多数据作为响应,我想在邮件自动完成输入附近显示它
猜你喜欢
  • 2020-05-05
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 2011-05-13
  • 2018-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多