2010-07-12 158 views
1

麻烦试图实现基于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。我必须输出什么格式的数据?

回答

5

各个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)的阵列。
0

您应该返回有效的JSON。 例如如果您在文本框输入“礼”,你可以返回:

{ 
query:'Li', 
suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'] 
} 

分隔符不用于返回值,但它可以让你与自动完成输入多个值。

如果您接受“”作为分隔符它可以让你键入:‘荷兰,李’,并自动完成将工作,如果你输入‘李’

+0

我现在正在返回JSON,但后来我在firebug中得到了“response.suggestions is undefined”。它指向jquery.autocomplete.js第293行。 – CFNinja 2010-07-12 21:11:23