2009-10-29 16 views
2

我正在使用jQuery的自動完成插件進行簡單的搜索表單。我無法將我的JSON對象數據轉換爲與自動完成一起使用的數組。jQuery自動完成插件的數據源

我的代碼:即返回這個樣子的

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功能取回是一個空字符串,我不知道什麼是錯的。

請幫忙!

回答

7

這是因爲$.getJSON是異步的。只要您發送請求,您的功能getAutocompleteData()繼續執行,不返回任何內容。

您應該括在你傳遞給方法的getJSON回調函數的一切:

var output; 
$.getJSON('AJAX/GetOrderedByNames', function(data) { 
    var output = ""; 
    $.each(data, function(index, optionData) { 
     output += optionData + "|"; 
    }); 
    $('#OrderedBy').autocomplete(output); 
}); 
+0

感謝很多人,忘了這一點 – Jimmy

0

嘗試改變var ouput;var output = '';

+3

這不會改變任何東西 –