Вы не можете использовать AJAX таким образом, поскольку у вас нет возможности узнать, когда запрос вернется.Вам необходимо выполнить свои действия в режиме обратного вызова:
$.getJSON("getData.aspx", {}, function (json) {
$("input#autocomplete").autocomplete({ source: json });
});
Кроме того, вы можете напрямую использовать удаленный источник данных, не вызывая $.getJson
:
$("input#autocomplete").autocomplete({ source: 'getData.aspx' });
Недостатки этого подходав том, что он будет работать асинхронно в любое время, когда ему нужно получить обновленный набор данных.Первый подход лучше, если у вас есть небольшой фиксированный набор данных, второй подход лучше, если у вас большой набор данных с результатами, которые необходимо отфильтровать.