javascript - not - jquery autocomplete this.source no es un error de función
jquery ui (4)
Implementé autocompletar en un campo de entrada, pero el cuadro no aparece y Firebug devuelve "this.source no es una función". He usado autocompletar en otros campos de la misma página sin ningún problema. (dos textarea)
Estoy usando el siguiente código para depurar, el mismo efecto si corro desde el archivo de script o la línea de comandos de Firebug.
var fakedata = [''test1'',''test2'',''test3'',''test4'',''ietsanders''];
$("#omschrijving").autocomplete(fakedata);
ejecutando jquery 1.4.2 y jquery ui 1.8.2, ambas versiones minimizadas.
¿Alguien tiene una idea de cómo funciona la función autocompletar en las áreas de texto, pero provoca el mal funcionamiento de las entradas?
Error y Stack Trace:
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()
Como dijo Shelton, la versión de devbridge.com (1.1.3) colisiona con jQuery UI (1.8.4). Lo conseguí trabajando asegurándome de que la versión de devbridge se carga después de la versión de jQuery UI.
La respuesta es que el primer parámetro de la autocompleta debe ser un objeto que contenga la propiedad "fuente". Esto funciona
var fakedata = [''test1'',''test2'',''test3'',''test4'',''ietsanders''];
$("#omschrijving").autocomplete({source:fakedata});
Si intentabas utilizar la función de autocompletar desde http://www.devbridge.com/projects/autocomplete/jquery/#demo , ahora colisiona con el método de autocompletar en jQuery UI. Tuve el mismo problema y luego me di cuenta de que solo podía usar la implementación de jQuery UI.
(NOTA: parece que la documentación de esta página es incorrecta: http://docs.jquery.com/Plugins/Autocomplete#Setup )
Tuvo un problema similar para tagedit / autocomplete. Parece que también quieres desactivar la función de autocompletar. Establecer el origen en falso evita estos errores.
Solución:
options.autocompleteOptions.source = false;