2010-07-22 5 views
32

J'ai implémenté la saisie semi-automatique sur un champ de saisie, mais la boîte n'apparaît pas et le firebug renvoie "this.source n'est pas une fonction". J'ai utilisé la saisie semi-automatique sur d'autres champs de la même page sans aucun problème. (deux textarea).jquery autocomplete this.source n'est pas une erreur de fonction

J'utilise le code suivant pour déboguer, même effet si je cours depuis un fichier script ou une ligne de commande Firebug. En cours d'exécution jquery 1.4.2 et jquery ui 1.8.2, les deux versions minifiées.

Quelqu'un a-t-il une idée de la façon dont l'autocomplétion fonctionne bien sur les zones de texte, mais provoque ce dysfonctionnement sur les entrées?

Erreur & Trace de la pile:

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

quel plugin autocomplete utilisez-vous? Il y a plusieurs variantes. – Pointy

+0

Pourriez-vous activer le traçage de pile dans firebug et afficher la fonction dans laquelle cela s'est produit? – Maz

+0

J'utilise la saisie semi-automatique de l'interface utilisateur jQuery dans la version 1.8.2 de la bibliothèque jQuery UI. travaillant sur le suivi de la pile –

Répondre

54

réponse est que le premier paramètre de la saisie semi-automatique doit être un objet contenant la propriété « source ». Cela fonctionne

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

pas si embarrassant, comme il est dit différent dans certains documents. Comment vous devinez? –

+1

En outre, vous pouvez voir cette erreur ou similaire si 'source' est un objet avec des clés, comme' {a: A, b: B, c: C} '. Devrait être juste des valeurs uniques, comme dans '{" A "," B "," C "}' '. – ctlockey

+0

Dans mon cas, '$ (". Div "). Autocomplete();' J'avais cette erreur parce que la classe '.div' n'existait pas –

4

Comme Shelton a déclaré, la version de devbridge.com (1.1.3) entre en collision avec jQuery UI (1.8.4). Vous avez réussi en vous assurant que la version de devbridge se charge après la version de jQuery UI.

1

A eu un problème similaire pour tagedit/autocomplete. Il semble que vous voulez également désactiver la saisie semi-automatique. Définir la source sur false évite ces erreurs.

Solution:

options.autocompleteOptions.source = false;