2011-06-17 10 views
1

jQuery UIのオートコンプリートをリモートデータファイルで使用しています。それは動作しますが、それは遅いです。私のJSONPはメガの価値のあるジャンク文字を超えており、私はそれを最小化したいと思います。ここでフォーマットは次のとおりです。Jquery UIオートコンプリート:「値」は必須ですか?

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

私はjQueryのUIのオートコンプリートフォームの遠隔データファイル受け入れてもらうにはどうすればよい:

{["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

これを行うには、私が考えることができる唯一の方法は、fopenとfreadでphpを使用し、データをフォーマットすることです。