2010-06-14 3 views
0

Je viens de mettre en œuvre l'excellente saisie semi-automatique jQuery UI.JQuery UI saisie semi-automatique IE Cursor Position Bug

http://jqueryui.com/demos/autocomplete/

Il y a un bug étrange dans IE 8 (et peut-être d'autres versions).

Lorsque vous sélectionnez un élément dans la boîte de suggestions dans IE 8, le curseur se place au début de la zone de texte avant le mot suggéré qui vient d'être inséré.

Firefox place le curseur après le mot inséré.

Est-ce que quelqu'un connaît un correctif pour cela?

Cordialement

Steve

Répondre

1

Essayez d'ajouter le code suivant dans l'événement select qui est passé à la fonction autocomplte.

Donc si vous avez:

jQuery('someval').autocomplete({ 
     source: availableTags 
    }); 

changement à être:

jQuery('some_val').autocomplete({ 
    source: availableTags, 

    select : function(event, ui){ 
      if(document.selection) { 
       this.focus(); 
       var oSel = document.selection.createRange(); 
       oSel.moveStart('character',this.value.length); 
       oSel.moveEnd('character',0); 
       oSel.select(); 
      } 
     } 
}) 

Voir plus: http://forum.jquery.com/topic/ui-autocomplete-multiple-demo-caret-position-in-ie http://jqueryui.com/demos/autocomplete/#multiple

+0

Merci pour la suggestion Aaron, je n'ai pas trouvé cette réponse dans aucun de mes googling. Cependant, je ne vois pas comment implémenter cette correction. J'ai cherché les versions non-minifiées de jquery ui core, autocomplete et la bibliothèque jquery elle-même et ne peux pas trouver la ligne 'this.value = terms.join (",");' nulle part. Je ne sais pas si ce correctif se rapporte à une ancienne version bien que le message date de moins d'un mois. Très étrange. D'autres idées? Cordialement Steve – CountZero

+0

Oh c'était spécifique à la version multiple de la saisie semi-automatique. Il était censé être ajouté dans l'événement select du code .autocomplete. Je vais éditer ce que j'ai trouvé dans le post. –

+0

Merci Aaron, travaillant magnifiquement. Je savais que même après avoir passé quelques jours à mettre à jour notre plate-forme pour prendre en charge la saisie semi-automatique, la première chose que le client ferait serait de se plaindre de ce problème. À la votre! – CountZero