我正在使用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
答案 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']
}