16

jQuery UI Autocomplete返されたオブジェクトが次のようになっている場合、正常に動作する がありjsonます。

label:name
value:name

次に、myname を検索し、ユーザーがいずれかを選択すると、入力ボックスに myname を入力します。

しかし、私が望むのは、json オブジェクトが次のようになることです。

label:name
value:id

これを行うと、オートコンプリートにより、入力ボックスに名前文字列ではなく ID 番号が入力されます。

オートコンプリートで表示テキストを名前に設定し、非表示の値を値に設定するにはどうすればよいですか?

公式ドキュメントでこれを行う方法がわかりません。

これが私のオートコンプリートです:

$("#eventAccount").autocomplete({
        minLength: 2,
        source: function (request, response) {
            var term = request.term;
            if (term in cache) {
                response(cache[term]);
                return;
            }

            request.e = "getMyAccountAutocomplete";

            $.getJSON("/admin/ajaxController.php", request, function (data, status, xhr) {
                cache[term] = data;
                response(data);
            });
        }
    });

そして返される JSON は次のとおりです。

[{"label":"My fancy name","value":"229"}]
4

1 に答える 1

11

これを行う組み込みの方法はありません。select代わりに、 eventをオーバーライドし、input値を自分で更新する必要があります。

$("#eventAccount").on("autocompleteselect", function (e, ui) {
    e.preventDefault(); // prevent the "value" being written back after we've done our own changes

    this.value = ui.item.label;
    // Put ui.item.value somewhere
});
于 2013-04-30T20:45:04.733 に答える