2010-07-22 12 views
32

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)jquery autocompletar this.source no es un error de función

Estoy usando el siguiente código para depurar, 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); 

corriendo jquery 1.4.2 y ui jquery 1.8.2, ambas versiones minified.

¿Alguien tiene una idea de cómo funciona la función de autocompletar correctamente en las áreas de texto, pero causa este mal funcionamiento en las entradas?

Error & Seguimiento de la pila:

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() 
+0

qué plugin autocompletar está usando? Hay varias variantes. – Pointy

+0

¿Podría activar el seguimiento de pila en Firebug y publicar la función en la que ocurrió esto? – Maz

+0

Estoy usando el autocompletado de jQuery UI como se incluye en la versión 1.8.2 de la biblioteca jQuery UI. trabajando en el seguimiento de la pila –

Respuesta

54

respuesta es que el primer parámetro de la función de autocompletar debe ser un objeto que contiene la propiedad "fuente". Esto funciona

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

no es tan embarazoso, ya que dice diferente en algunos documentos. ¿Cómo puedes adivinar? –

+1

Además, puede ver este error o similar si 'fuente' es un objeto con claves, como' {a: A, b: B, c: C} '. Deberían ser solo valores únicos, como en '{" A "," B "," C "}'. – ctlockey

+0

En mi caso, '$ (". Div "). Autocomplete();' Estaba teniendo este error porque la clase '.div' no existía –

4

Como se indicó Shelton, la versión de devbridge.com (1.1.3) choca 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.

1

Tenía un problema similar para tagedit/autocompletar. 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; 
Cuestiones relacionadas