jQueryオートコンプリートプラグインのデータソース
-
10-07-2019 - |
質問
単純な検索フォームにjQueryのオートコンプリートプラグインを使用しています。オートコンプリートで使用するためにJSONオブジェクトデータを配列に変換するのに問題があります。
マイコード:
var listOfOrderedByNames = getAutocompleteData();
$('#OrderedBy').autocomplete(listOfOrderedByNames);
function getAutocompleteData() {
var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
$.each(data, function(index, optionData) {
output += optionData + "|";
});
});
return output;
}
返されるJSONデータは次のようになります。
["Jimmy","John", "Etc",null]
何らかの理由で、 getAutocompleteData
関数から返されたものは空の文字列で、何が間違っているのかわかりません。
助けてください!
解決
$。getJSON
は非同期であるためです。リクエストを送信するとすぐに、関数 getAutocompleteData()
は実行を継続し、何も返しません。
getJSONメソッドに渡すコールバック関数ですべてを囲む必要があります。
var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
var output = "";
$.each(data, function(index, optionData) {
output += optionData + "|";
});
$('#OrderedBy').autocomplete(output);
});
他のヒント
var output;
行を var output = '';
所属していません StackOverflow