Jquery UI自动完成:是否需要“价值”?

时间:2011-06-17 21:59:56

标签: jquery-ui

我正在使用jQuery UI的自动完成功能和远程数据文件。它有效,但速度很慢。我的JSONP超过了一个巨大的“价值”垃圾字符,我想尽量减少这一点。格式如下:

[{"value": "Aaronsburg, PA"}, 
 {"value": "Abanda, AL"},
 {"value": "Abbeville, AL"}]

如何让jQuery UI的自动完成功能接受以下格式的远程数据文件:

{["Aaronsburg, PA", "Abanda, AL", "Abbeville, AL"]}

["Aaronsburg, PA", "Abanda, AL", "Abbeville, AL"]

2 个答案:

答案 0 :(得分:1)

jQuery UI Autocomplete可以采用任何格式的数据。您完全控制了列表的呈现,但在这种情况下,我认为它可能正常工作。

This demo(尽管有本地来源)似乎按预期工作。

如果您需要更多控制,可以定制renderItem函数以适应任何数据格式:

var searches = [{
    label:'first',
    desc:'foo foo',
},
{
    label:'second',
    desc:'bar bar',
},
{
    label:'third',
    desc:'baz baz',
}];

$(function() {
    $('input').autocomplete({
      dataType: 'json',
      source: searches
    })
    .data('autocomplete')._renderItem = function(ul, item) {
        return $('<li></li>')
       .data('item.autocomplete', item)
       .append(item.desc)
       .appendTo(ul);
    };
});

或者jQuery网站上有example使用远程JSONP作为源,并自定义填充列表所需的labelvalue

答案 1 :(得分:0)

嗯,我能想到的唯一方法是使用php和fopen和fread,然后格式化数据。