我的代码:
$("#town").autocomplete({
source: function(request, response){
$.ajax({
url: 'url',
type: 'GET',
dataType: 'json',
data:{
type : "towns",
mode: "titles",
limit: 20,
q: request.term
},
success: function(data){
console.log(data);
response(data);
},
});
},
数据是Json对象。我在json_encode(数组)之后从php得到它。如果我写了一些字母,我将使用带有值的json数组,但不会显示工具提示。怎么了? jquery 1.11.3,jquery-ui 1.11.4 console.log(data)返回:
Object {query: "Mi", suggestions: Array(4)}
query: "Mi"
suggestions : Array(4)
0 :"Minsk"
1: "Mir"
2:"Mikhailovo"
3:"Miroslavl"
等等。
UPD
$("#town").autocomplete({
source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]
});
也不起作用。包括Jquery和jquery ui。 Concole很清楚。
答案 0 :(得分:0)
我认为您不会以自动填充所需的正确格式提供数据。您不能只提供任何旧数据并期望它理解 - 响应数据必须与插件接受的格式之一匹配。
根据http://api.jqueryui.com/autocomplete/#option-source的文档:
有两种支持的格式:
字符串数组:
[ "Choice1", "Choice2" ]
具有标签和值属性的对象数组:
[ { label: "Choice1", value: "value1" }, ... ]
您需要修改服务器端代码以提供允许格式之一的数据,或者(效率较低)您可以在调用“响应”回调之前在“成功”函数内重构客户端。