2010-07-22 32 views
32

Ho implementato il completamento automatico su un campo di input, ma la casella non viene visualizzata e i risultati firebug "this.source non è una funzione". Ho usato il completamento automatico su altri campi della stessa pagina senza problemi. (due textarea).jquery completamento automatico this.source non è un errore di funzione

Sto usando il seguente codice per eseguire il debug, stesso effetto se eseguo da file di script o riga di comando Firebug.

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

esecuzione jquery 1.4.2 e jquery ui 1.8.2, entrambe versioni minificate.

Qualcuno ha un'idea di come il completamento automatico funzioni correttamente sulle aree di testo ma causa questo malfunzionamento sugli ingressi?

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

Quali plug-in di completamento automatico stai usando? Ci sono diverse varianti – Pointy

+0

È possibile attivare la traccia dello stack in firebug e pubblicare la funzione in cui si è verificato? – Maz

+0

Sto utilizzando il completamento automatico dell'interfaccia utente jQuery come fornito nella versione 1.8.2 della libreria dell'interfaccia utente jQuery. lavorando sulla traccia dello stack –

risposta

54

risposta è che il primo parametro del completamento automatico dovrebbe essere un oggetto che contiene la proprietà "fonte". Questo funziona

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

non così imbarazzante, come dice diverso in qualche documentazione. Come dove indovinare? –

+1

Inoltre, potresti vedere questo errore o simile se 'source' è un oggetto con chiavi, come' {a: A, b: B, c: C} '. Dovrebbero essere solo valori singoli, come in '{" A "," B "," C "}'. – ctlockey

+0

Nel mio caso, '$ (". Div "). Autocomplete();' Avevo questo errore perché la classe '.div' non esisteva –

4

Come detto Shelton, la versione da devbridge.com (1.1.3) si scontra con jQuery UI (1.8.4). Funziona assicurandosi che la versione del devbridge si carichi dopo la versione dell'interfaccia utente di jQuery.

1

Aveva un problema simile per tagedit/completamento automatico. Sembra che tu voglia disabilitare anche il completamento automatico. Impostando la sorgente su false si evitano questi errori.

Soluzione:

options.autocompleteOptions.source = false; 
Problemi correlati