我正在使用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"]
答案 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作为源,并自定义填充列表所需的label
和value
。
答案 1 :(得分:0)
嗯,我能想到的唯一方法是使用php和fopen和fread,然后格式化数据。