彼らのヘルプドキュメントから。
折り返し電話
オプションのコールバック関数 autoComplete を使用すると、コールバック内にあるコードのみが実行されます。クリック イベント オブジェクトは、選択範囲に含まれる情報へのアクセスに使用するために、コールバック関数に渡されます。1 つの使用例を次に示します。
$("#searchField").autocomplete("update", {
source: [ "foo", "bar", "baz" ],
minLength: 3,
callback: function(e) {
var $a = $(e.currentTarget); // access the selected item
$('#searchField').val($a.text()); // place the value of the selection into the search box
$("#searchField").autocomplete('clear'); // clear the listview
}
});
オプション 1
このセクションでは、テキスト フィールドにアクセスできます
$('#searchField').val($a.text()); // or $a.value()
コールバックイベント内でこのようなことをしてください
window.location.replace("http://stackoverflow.com?target=" + $a.text());
オプション 2
結果セットがこの形式 (テキストと値) であることを期待しているようです。そのため、他の値が必要な場合は、jquery オートコンプリート (このコンポーネントが基づいている) に頼る必要があります。
$('#some_id').autocomplete({
source: function (request, response) {
$.ajax({
url: 'some_url',
dataType: "json",
data: {
filter: request.term
},
success: function (data) {
response($.map(eval(data), function (item) {
return {
label: item.Text,
value: item.Value,
extra_value: item.Extra_Value
}
}));
}
})
},
maxLength: 2,
select: function (event, ui) {
$("#Some_id2").attr('value', ui.item.extra_value);
}
});
UPDATE aka OPTION 3
デモコードから、テキスト値だけが必要で、(あなたの場合のように) ID が必要ない場合は、ソース形式を変更するだけです。サーバーから JSON の結果を返すのではなく、文字列の配列を返すか、JSON の結果を文字列配列に変換します。
(デモページの作業サンプルのコード)
var availableTags = ['24', 'about me',... , 'XUIJS'];
$("#searchField").autocomplete({
target: $('#suggestions'),
source: availableTags,
link: 'target.html?term=',
minLength: 1,
matchFromStart: false
});