[英]jQuery UI Autocomplete not showing AJAX results
我正在嘗試構建一個自動完成表單,該表單將在用戶輸入時從外部數據庫(返回JSON)加載JSON。 我的代碼似乎正常運行,因為它將記錄包含多個JSON對象的數組。 但是,jQuery UI不會在頁面本身上顯示結果。
的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
});
});
可能是什么問題? 謝謝。
嘗試:
$("#tags").autocomplete({
minLength: 2,
source: function( request, response ) {
$.getJSON("http://forums.zybez.net/runescape-2007-prices/api/"+request.term, function(data){
var items = [];
$.each( data, function(key, val){
items.push(val);
});
console.log(items); // Shows correct results
response(items);
});
}
});
參見: http : //jsfiddle.net/4g3818rr/
感謝Madalin的回答和OA的評論,我找到了解決方案:
function createUrl(input){
var url = "http://forums.zybez.net/runescape-2007-prices/api/" + input;
return url;
}
$("#tags").autocomplete({
minLength: 2,
source: function( request, response ) {
var term = this.term;
var url = createUrl(term);
$.getJSON(url, function(data){
var items = [];
$.each( data, function(key, val){
items.push(val);
});
response(items);
});
}
});
當您像這樣設置自動完成的來源時:
$("#btnArtist").autocomplete({ source: "/Ajax/Home/AutoCompleteData" });
您可以在控制台中查看從服務器返回的JSON數據,但不會顯示結果。
將URL更改為Ajax對象可以解決我的問題。 這是工作代碼:
$("#btnArtist").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Ajax/Home/AutoCompleteData",
data: {
term: request.term
}
}).done(function (data) {
response(data);
});
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.