Я пытаюсь создать форму автозаполнения, которая будет загружать JSON из внешней базы данных (которая возвращает JSON) на пользовательский ввод. Мой код работает нормально, поскольку он будет регистрировать массив, содержащий несколько объектов JSON. Однако пользовательский интерфейс jQuery не показывает результаты на самой странице.jQuery UI Autocomplete не показывает результаты AJAX
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tables</title>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
</head>
<body>
<div class="ui-widget">
<input type="text" id="tags" />
</div>
<script src="assets/js/script.js"></script>
</body>
</html>
JS
$(document).ready(function(){
function createUrl(input){
var url = "http://forums.zybez.net/runescape-2007-prices/api/" + input;
return url;
}
function getSource(input){
var input = input.term;
var url = createUrl(input);
$.getJSON(url, function(data){
var items = [];
$.each(data, function(key, val){
items.push(val);
});
console.log(items); // Shows correct results
return items;
});
}
$("#tags").autocomplete({
minLength: 2,
source: getSource
});
});
Что может быть проблема? Благодарю вас.
Возможный дубликат [? Как вернуть ответ от асинхронного вызова] (http://stackoverflow.com/questions/14220321/how-do-i-return-the -response-from-an-асинхронный вызов) – madalinivascu
где вы называете эту функцию 'getSource'? – madalinivascu
Ваша проблема может заключаться в том, что вы возвращаете результаты только в функцию обратного вызова 'getJSON', ваша функция' getSource' ничего не возвращает ... –