jquery autocomplete this.source不是函数错误

Jaa*_*ood 43 javascript jquery jquery-ui

我在输入字段上实现了自动完成,但是框没有显示,而firebug返回"this.source不是函数".我在同一页面的其他字段上使用了自动完成功能,没有任何问题.(两个textarea的).

我正在使用以下代码进行调试,如果我从脚本文件或Firebug命令行运行,效果相同.

var fakedata = ['test1','test2','test3','test4','ietsanders'];
$("#omschrijving").autocomplete(fakedata);
Run Code Online (Sandbox Code Playgroud)

运行jquery 1.4.2和jquery ui 1.8.2,两个缩小版本.

有没有人知道自动完成如何在textareas上正常工作但导致输入上的这种故障?

错误和堆栈跟踪:

this.source is not a function
http://facturatie.autodealers.nl/dev/resources/js/jquery-ui-1.8.2.custom.min.js
Line 570
close(Object { name="a"})jquery....min.js (regel 570)
close(Object { name="a"}, Object { name="c"})jquery....min.js (regel 570)
response()
Run Code Online (Sandbox Code Playgroud)

Jaa*_*ood 61

答案是自动完成的第一个参数应该是包含"source"属性的对象.这有效

var fakedata = ['test1','test2','test3','test4','ietsanders'];
$("#omschrijving").autocomplete({source:fakedata});
Run Code Online (Sandbox Code Playgroud)

  • 此外,如果`source`是带有键的对象,您可能会看到此错误或类似错误,如`{a:A,b:B,c:C}`.应该只是单个值,如`{"A","B","C"}`. (2认同)

小智 12

如果您尝试使用http://www.devbridge.com/projects/autocomplete/jquery/#demo中的自动完成功能,它现在会与jQuery UI中的自动完成方法发生冲突.我有同样的问题,后来发现我可以使用jQuery UI实现.

(注意:此页面的文档似乎有误:http://docs.jquery.com/Plugins/Autocomplete#Setup)


小智 6

如果您将它与jQuery UI库一起使用,它也有名为的插件autocomplete。在这种情况下,您可以使用插件别名devbridgeAutocomplete

$('.autocomplete').devbridgeAutocomplete({ ... });
Run Code Online (Sandbox Code Playgroud)

这解决了jQuery UI冲突的问题


小智 5

正如谢尔顿所说,devbridge.com(1.1.3)的版本与jQuery UI(1.8.4)相冲突.通过确保在jQuery UI版本之后加载devbridge版本来实现它.