4

コールバックを使用せずにjQuery.autocompleteを使用しようとしています。私の JSON データ ソースは JS 変数に格納されています。これのポイントは、サーブコールを避けることです。

しかし、オートコンプリートを使用しようとすると、エラーメッセージが表示され続けます

リクエスト URI が大きすぎます

これは私のコードです:

// This list is much longer
country_data_source =   [{"id":"AF","name":"Afghanistan"},{"id":"AL","name":"Albania"},{"id":"DZ","name":"Algeria"},{"id":"AS","name":"American Samoa"},{"id":"AD","name":"Andorra"},{"id":"AO","name":"Angola"}]

jQuery( "#country" ).autocomplete({
  minLength: 0,
  source: country_data_source
 });

jQuery はまだ POST/GET を使用しているため、ブラウザの制限によりこのエラーが発生しますか?

*注: *上記の短いリストだけを使用すると、オートコンプリートがまったく応答しません。
試しても$.getJSON(country_data_source)

4

1 に答える 1

4

オートコンプリートは、配列が "label" と "value" 属性で構成されるオブジェクトで構成されていないため、配列をローカル ソースとして認識しない場合があります。あなたの場合、期待していない ID と名前を指定しました。この配列のオブジェクトを変換するか、ラベルとして使用される文字列の配列のみを提供する必要があります。jQuery UI Autocomplete は配列内で検索対象を見つけられないため、次の解釈である URL に切り替えます。

于 2013-03-31T21:41:25.297 に答える