2011-06-17 68 views
1

我正在使用jQuery UI的自动完成与远程数据文件。它有效,但速度很慢。我的JSONP超过了一些“有价值”的垃圾角色,我想尽量减少这种情况。下面是格式:Jquery UI自动完成:需要“值”吗?

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

如何获得jQuery用户界面的自动完成接受形式的远程数据文件:

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

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

回答

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); 
    }; 
}); 

或者有使用远程JSONP作为源jQuery的网站的example和定制所需的labelvalue填充列表。

0

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