7

JSON配列で使用されているインデックス名ではない場合に、「ラベル」と「値」として使用するJSON配列インデックスをjQuery UIオートコンプリートに指示する方法はありますか?

私のルックアップ値を含むarayは次のようになります(Firebugによってログに記録されます):

[ Object { id="12", name="Don Davis" }, Object { id="17", name="Stan Smith" } ]

「ラベル」として「id」を使用し、「値」として「name」を使用したいのですが、構成オブジェクトに指示する方法がわかりません。

私の配列はローカル変数に含まれています-Ajax呼び出しは行われません。

別の質問に対するこの応答は、非表示のフォーム入力を作成することで問題を解決しますが、これを処理するためのよりクリーンな方法があるようです。

4

3 に答える 3

9

Jquery UIのドキュメントを読むと、次のように試すことができます。

<script>
    $(function() {
var projects = [ { id: "12",value: "Don Davis" }, { id: "17", value:"Stan Smith" } ]

    $( "#project" ).autocomplete({
        minLength: 0,
        source: projects,
        focus: function( event, ui ) {
            $( "#project" ).val( ui.item.value);
            return false;
        },
        select: function( event, ui ) {
            $( "#project" ).val( ui.item.value);
            $( "#project-id" ).val( ui.item.id);

            return false;
        },
        search: function(event, ui) { console.log(event); console.log(ui) }
    })
    .data( "autocomplete" )._renderItem = function( ul, item ) {
        return $( "<li></li>" )
            .data( "item.autocomplete", item )
            .append( "<a>" + item.value+"</a>" )
            .appendTo( ul );
    };
});​
    </script>
于 2012-06-03T03:32:36.440 に答える
0

結果をラベル値オブジェクトのリストを含む配列に変換するだけです

var list= result.map(function (item) { return { label: item.title, value: item.value }; });
$( "#project" ).autocomplete({
    source: list
});
于 2020-12-08T16:11:28.050 に答える
-2

次のような配列を返す必要があります:(サイドサーバーPHP)

for( ... ){
$suggest = array('value'=>$value,'label'=>$label); }

于 2016-12-06T19:37:01.967 に答える