2017-04-27 96 views
0

我的代码:jQuery的自动完成功能不显示结果

$("#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(array)之后从php获取它。如果我写了一些字母,我会有带值的json数组,但不显示工具提示。哪里不对? jQuery的1.11.3,jQuery的UI 1.11.4 的console.log(数据)返回:

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

这是我的本地网址。它效果很好。我不认为在php中的问题,因为console.log显示正确的数据。 – Dev

+0

console.log显示什么?你没有提供足够的信息。如果日志不起作用,则问题出在url方法中。 –

回答

0

我不认为你提供的数据是自动完成所期望的正确格式。您不能只提供任何旧数据并期望它理解 - 响应数据必须与插件接受的格式之一匹配。

作为每文档在http://api.jqueryui.com/autocomplete/#option-source

有两种支持格式:

字符串数组:[ "Choice1", "Choice2" ]

对象数组与标签和value属性:[ { label: "Choice1", value: "value1" }, ... ]

您需要修改服务器端代码以suppl Ÿ允许的格式之一中的数据,或者(效率较低),您可以在调用“响应”回调之前在“成功”函数内对客户端进行重构。

+0

我改变了成功函数:'data = [“C++”,“java”,“php”,“coldfusion”,“javascript”,“asp”,“ruby”]; response(data)'like like example在文档中,但它没有帮助您的控制台中的任何错误 – Dev

+0

?你确定有一个ID为“town”的文本框,在你运行自动完成命令(或者:自动完成命令在“document.ready”块内)时声明_before_?如果您向我们展示更多代码,它可能会有所帮助。 – ADyson

+0

完成所有条件。我认为版本中存在问题。我有jQuery 1.11.3和UI 1.11.4并通过CDN使用它们。然后我从官方网站下载了ui 1.11.4.zip,我发现他们使用的是jquery 10.6。 – Dev