我正在使用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
函数返回的是一个空字符串,我不知道出了什么问题。
请帮忙!
答案 0 :(得分:7)
这是因为$.getJSON
是异步的。一旦发送请求,您的函数getAutocompleteData()
将继续执行,不返回任何内容。
您应该将所有内容都包含在您传递给getJSON方法的回调函数中:
var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
var output = "";
$.each(data, function(index, optionData) {
output += optionData + "|";
});
$('#OrderedBy').autocomplete(output);
});
答案 1 :(得分:0)
尝试将var ouput;
行更改为var output = '';