Jquery自动完成不显示结果

时间:2017-04-27 10:15:48

标签: jquery jquery-ui

我的代码:

$("#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很清楚。

1 个答案:

答案 0 :(得分:0)

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

根据http://api.jqueryui.com/autocomplete/#option-source的文档:

  

有两种支持的格式:

     

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

     

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

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

相关问题