事前入力された複数選択ボックスを使用する代わりに、jQueryUI Autocompleteを使用してリスト サーバー側をフィルタリングし、一致するものだけをクライアントに返します (StackOverflow でタグ選択が機能する方法と同様)。
ここに複数の値を選択する良い例がありますhttp://jqueryui.com/autocomplete/#multiple-remote
その後、複数選択を処理するのと同じ方法で、選択の結果を保存できます。
最初の文字がサーバーから用語を取得し、その後それらの結果からフィルター処理するハイブリッド アプローチを実装するには、次を使用できます (これは完全にテストされていないことに注意してください)。
結果を保持するグローバル変数を追加します
var results_cache = [];
ハイブリッド ソースを使用するautocomplete
source: function( request, response ) {
// get the first letter of your search term
var letter = request.term.substring(0,1);
// check to see if we already have results for this letter
if (!results_cache[letter]){
// no results, fetch via AJAX
$.getJSON( "search.php", { term: request.term },
function(data){
// cache results
results_cache[letter] = data;
// filter results (in case we have more than just 1 character in the term)
response($.ui.autocomplete.filter(data, request.term));
}
);
} else {
// we already have data for this letter, just filter the results from the cache
response($.ui.autocomplete.filter(results_cache[letter], request.term));
}
},
search: function() {
// make sure we have at least 1 character for the term
if (!this.value) return;
var term = this.value;
},