jquery autocomplete this.source不是函数错误

时间:2010-07-22 12:44:07

标签: javascript jquery jquery-ui

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

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

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

运行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()

7 个答案:

答案 0 :(得分:59)

答案是自动完成的第一个参数应该是包含“source”属性的对象。这工作

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

答案 1 :(得分:11)

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

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

答案 2 :(得分:5)

Shelton表示,devbridge.com(1.1.3)的版本与jQuery UI(1.8.4)相冲突。通过确保在jQuery UI的版本之后加载devbridge版本来实现它。

答案 3 :(得分:3)

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

$('.autocomplete').devbridgeAutocomplete({ ... });

这解决了jQuery UI冲突的问题

答案 4 :(得分:1)

有关于tagedit / autocomplete的类似问题。您似乎也想要禁用自动完成功能。将源设置为false可避免这些错误。

解决方案:

options.autocompleteOptions.source = false;

答案 5 :(得分:0)

jquery.autocomplete.js 结尾的以下部分中进行搜索:

创建可链接的jQuery插件:

$.fn.devbridgeAutocomplete = function (options, args) {....

此devbridgeAutocomplete是使用以下行访问相同功能的替代插件:

if (!$.fn.autocomplete) {
    $.fn.autocomplete = $.fn.devbridgeAutocomplete;
}

所以..您可以通过更改此devbridgeAutocomplete

来使用$.fn.devbridgeAutocomplete代替自动完成或任何名称

答案 6 :(得分:0)

在我的情况下,我第二次导入了jquery,但我没有意识到。 像这样:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"> </script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.devbridge-autocomplete/1.2.27/jquery.autocomplete.min.js"></script> 

// More code

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"> </script>

因此,请确保在初始化jquery之后导入自动完成脚本。