使用json的Jquery Autocomplete失败

时间:2010-09-10 16:11:53

标签: javascript jquery ruby-on-rails json autocomplete

我正在使用Devbridge的自动完成插件,我在这里安装的所有内容都是我的代码:

$(document).ready(function(){
    $('#request_task').autocomplete({
      serviceUrl: '<%= ajax_path %>',
      minChars:1,
      width: 300,
      delimiter: /(,|;)\s*/,
      deferRequestBy: 0, //miliseconds
      params: { artists: 'Yes' },
    });

});

此请求命中我的rails操作并返回此json。只返回了一个对象,但大部分时间会有超过1个......这只是一个测试用例:

[
    {
        "user": {
            "salt": "somthing",
            "name": "john",
            "encrypted_password": "92dadsfa6b001ffe71c3c1d8e9fb76c42d1c8afeffa739de9063d94206c",
            "created_at": "2010-09-10T14:10:54Z",
            "updated_at": "2010-09-10T14:10:54Z",
            "admin": null,
            "id": 1,
            "remember_token": "c945522b3eb0a25e36bb39155fc05b3eec301ac5e2196956f2e6f86b4b22c987",
            "email": "test@gmail.com"
        }
    }
]

我可以清楚地看到firebug中的请求,但是我没有得到任何关于自动完成的信息并且它出错...我错过了什么......我的错误是

a.suggestions is undefined

3 个答案:

答案 0 :(得分:4)

我认为您需要在开发者页面上稍微阅读一下,因为您的回复格式错误:

  

为Ajax提供数据的网页   在我们的案例中,自动完成   autocomplete.ashx将获得GET   使用查询字符串请求?query = Li,   它必须返回JSON数据   格式如下:

{
 query:'Li',
 suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'],
 data:['LR','LY','LI','LT']
}
  

注意:

     

查询 - 原始查询值
  建议 - 逗号分隔的建议值数据数组
  (可选) - 数据数组,包含选择数据时回调函数的值。

答案 1 :(得分:1)

真诚的建议,不要构造JSON字符串。请去寻找API。
如果您使用的是java,请查看http://www.json.org/java/
并确保将响应中的内容类型设置为application/json

答案 2 :(得分:0)

您的JSON格式错误

检查格式是否正确

{
 query:'Li',
 suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'],
 data:['LR','LY','LI','LT']
}