使用jQuery自动完成
问题描述:
麻烦试图实现基于this使用jQuery自动完成
自动完成它看起来是非常简单的,但我不能让这一个有一个AJAX调用工作。不工作,我的意思是我没有看到下降。 Firebug显示没有错误。
<script type="text/javascript">
var options, a;
jQuery(function(){
options = { serviceUrl:'vendors1.cfm',
delimiter: /(,|;)\s*/,
deferRequestBy: 0,
minChars:2};
a = $('#query').autocomplete(options);
});
</script>
现在vendors1.cfm,返回一个';'分离式列表:ABC建设; ABC建设; ABC建设; ABC管道&供电INC等
如何正确使用serviceURL
。我必须输出什么格式的数据?
答
各个DEV网页:
网页,对Ajax的自动完成功能提供的数据,vendors1.cfm
会收到GET请求查询字符串为?query="query string"
,它必须按以下格式返回JSON数据:
{
query:'Li',
suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'],
data:['LR','LY','LI','LT']
}
-
query
- 原始查询值 -
suggestions
- 数据阵列,被选择的数据时,其中包含的回调函数值 - 逗号分隔的建议值 -
data (optional)
的阵列。
答
您应该返回有效的JSON。 例如如果您在文本框输入“礼”,你可以返回:
{
query:'Li',
suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania']
}
分隔符不用于返回值,但它可以让你与自动完成输入多个值。
如果您接受“”作为分隔符它可以让你键入:‘荷兰,李’,并自动完成将工作,如果你输入‘李’
我现在正在返回JSON,但后来我在firebug中得到了“response.suggestions is undefined”。它指向jquery.autocomplete.js第293行。 – CFNinja 2010-07-12 21:11:23