2010-05-19 4 views
2

J'utilise le plugin JQuerys Autocomplete, mais il ne se termine pas automatiquement lors de l'entrée de n'importe quoi.Problème de saisie semi-automatique JQuery

Des idées pour lesquelles ça ne marche pas? L'exemple de base fonctionne, mais pas le mien.

var ppl = {"ppl":[{"name":"peterpeter", "work":"student"}, 
    {"name":"piotr","work":"student"}]}; 

var options = { 
    matchContains: true, // So we can search inside string too 
    minChars: 2,  // this sets autocomplete to begin from X characters 
    dataType: 'json', 
    parse: function(data) { 
     var parsed = []; 
     data = data.ppl; 
     for (var i = 0; i < data.length; i++) { 
      parsed[parsed.length] = { 
       data: data[i], // the entire JSON entry 
       value: data[i].name, // the default display value 
       result: data[i].name // to populate the input element 
      }; 
     } 
     return parsed; 
    }, 
    // To format the data returned by the autocompleter for display 
    formatItem: function(item) { 
     return item.name; 
    } 
}; 

$('#inputplace').autocomplete(ppl, options); 

Ok. Mise à jour:

<input type="text" id="inputplace" /> 

Ainsi, en entrant par exemple "peter" dans le champ de saisie. Aucune suggestion de saisie semi-automatique n'apparaît. Il devrait donner "peterpeter" mais rien ne se passe.

Et encore une chose. Utiliser cet exemple fonctionne parfaitement.

var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" "); 
$("#inputplace").autocomplete(data); 
+2

'var ppljson = eval (ppl);' Pourquoi? 'ppl' est déjà un objet JS valide. Aurait eu un sens si 'ppl' était une chaîne (' '{...}' ') et _needed_ pour être' eval() '' ed. – jensgram

+0

Oui, c'est vrai. Eval supprimé, mais cela ne fonctionne toujours pas. une idée? :) – heffaklump

+0

Eh bien, que ** exactement ** fait "ça ne marche pas" signifie? Les erreurs? Crash du navigateur? Le texte sort à l'envers? Vous ne nous aidez pas ici. – Pointy

Répondre

3

Eh bien, en regardant le code dans ce plug-in, l'option « analyser » ressemble il est seulement appelé lorsque les données sont récupérées par un appel AJAX. À titre expérimental, vous pourriez essayer de transmettre les données de telle sorte que vous n'en ayez pas besoin:

var ppl = [{"name":"peterpeter", "work":"student"}, 
{"name":"piotr","work":"student"}]; 
+0

Ooooh, c'est pourquoi. Oui, essayé avec votre version de ppl et a enlevé la fonction d'analyse et maintenant ça marche! : DD Oui! Merci beaucoup! – heffaklump

+0

OK, c'est génial! Bien sûr, si vous utilisez des rappels Ajax, vous pouvez restaurer votre gestionnaire d'analyse. (Je ne pense pas que ça fasse mal de faire partie des options quand vous ne faites pas Ajax, si cela peut aider à tester.) – Pointy

Questions connexes