Une question concernant le plugin auto_complete


#1

Je viens d’installer le plugin auto_complete et tout semble fonctionner,
mais je me posais une question : le plugin ne permet pas la navigation
au clavier parmi les résultats (flèches haut/bas)?

Merci d’avance


#2

Il me semble que si :
http://www.rorcraft.com/autocomplete_advanced_local/


Michel B.


#3

Effectivement, et je confirme, après avoir jetté un oeil au code.

Je crois aussi avoir localisé mon problème. Dans le fichier controls.js,
je ne parviens pas à passer le test à la ligne 130 : if (this.active),
et donc il ne se passe rien lorsque je tente de naviguer dans les
résultats de recherches. Quelqu’un as-t-il déjà eu un problème
similaire?

A toute fin utile, voici comment je fais appel au champs de recherche :

<%= text_field_with_auto_complete :search, :term, { :size => 31},
:skip_style => false -%>

J’ai déclaré une fonction auto_complete_for_search_term, qui, elle,
fonctionne correctement, et j’ai bien structuré le retour dans un div
contenant une liste, comme précisé dans la documentation.

<% if @suggestions and !@suggestions.first.nil? %>
    <% @suggestions.each do |suggestion| %>
  • ' class='search_results'><%=link_to_remote truncate_around(suggestion.term, @terms, 25, true), :url => { :controller => @submissions_type, :action => "search", :id => suggestion.term }, :html => { :href => url_for( :controller => @submissions_type, :action => "search", :id => suggestion.term ) } %>
  • <% end %>
<% end %>

Merci d’avance


#4

L’autocomplétion du navigateur ne passait pas par dessus celle générée
via JS, mais j’ai tout de même essayé ce que tu proposais, sans succès.

En fait, en y regardant de plus près, j’ai remarqué que le fait
d’appuyer sur les touches flèche haut / bas engendrait le même
comportement que s’il s’agissait de n’importe quelle touche, Ã savoir un
appel à ma fonction auto_complete_for_search_term.

En creusant un peu sur ce que je pense être l’origine du problème
(this.active qui renvoit false), je n’ai malheureusement pas su trouve
quoi que ce soit.

A propos des versions :

  • j’ignore la version exacte du plugin, mais à mon avis il s’agit de la
    dernière. Je l’ai installé via la commande script/plugin install
    auto_complete.
  • rails 2.1.0
  • prototype 1.6.0.2
  • scriptaculous 1.8.1

#5

Ok, je vois déjà une chose qui peut perturber : il ne faut pas oublier
de
désactiver l’auto-complete du navigateur lui-même qui peut entrer en
conflit
:

<%= text_field_with_auto_complete :search, … , :autocomplete =>
false
-%>

Si j’ai bonne mémoire, ça s’écrit comme ça, à vérifier avec la doc du
plugin.

Pour la beauté du diagnostique, à mon avis tu devais avoir
l’auto-complete
du navigateur, beaucoup plus discret, qui s’affichait en-dessous de
l’auto-complete du champs input (donc pas visible) mais qui prenait la
main
sur les contrôles clavier à la place des javascript du module.

Si ça ne résoud pas le problème, vérifie que tu as bien la dernière
version
stable du plugin et que ta version de rails n’est pas trop ancienne, il
y a
un saut important entre prototye 1.5.1 et 1.6, et donc entre
scripta.culo.us1.7.x et 1.8.x ; si rien de tout ça ne résoud le
problème, il va falloir
creuser un peu plus profond et probablement avec un peu plus de
données…


Michel B.


#6

Pour trouver la version du plugin il suffit de regarder dans les
fichiers
qui le composent (normalement sous /vendor/plugins/auto_complete/) il
doit
certainement y en avoir un nommé “VERSION” ou “README.txt” ou n’importe
quelle déclinaison de ce genre de noms. Ceci dit, si tu l’as installé
avec
script/plugin install sans forcer une verison particulière ça doit être
à la
bonne version.

Sinon, avec quel navigateur tu teste ?
Pourquoi ta div est pré-remplie alors que tu charges les données en AJAX
avec auto_complete_for_search_term ?


Michel B.