2010-06-14 3 views
0

Я только что внедрил отличный автозаполнение jQuery UI.jQuery UI Autocomplete IE Cursor Position Bug

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

Существует странная ошибка в IE 8 (и, возможно, других версий).

Когда вы выбираете элемент из окна предложений в IE 8, курсор перемещается в начало текстового поля до предлагаемого слова, которое только что было вставлено.

Firefox поместил курсор после вставленного слова.

Кто-нибудь знает об исправлении этого вопроса?

С уважением

Стив

ответ

1

Попробуйте добавить следующий код в случае выбора, который передается функции autocomplte.

Так что если у вас есть:

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

Изменить это будет:

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(); 
      } 
     } 
}) 

Смотреть еще: http://forum.jquery.com/topic/ui-autocomplete-multiple-demo-caret-position-in-ie http://jqueryui.com/demos/autocomplete/#multiple

+0

Спасибо за предложение Аарон, я не нашел этот ответ ни в одном из моих поисковых запросов. Однако я не могу понять, как реализовать это исправление. Я искал неминифицированные версии jquery ui core, autocomplete и самой библиотеки jquery и не смог найти строку 'this.value = terms.join (",");' в любом месте. Я не знаю, связано ли это исправление с старой версией, хотя пост меньше месяца. Очень странно. Любые другие идеи? С уважением Steve – CountZero

+0

О, это было специфично для множественной версии автозаполнения. Предполагалось, что он будет добавлен в событие select кода .autocomplete. Я отредактирую то, что нашел в сообщении. –

+0

Спасибо, Аарон, прекрасно работает. Просто знал, даже проведя пару дней, обновляя нашу платформу, чтобы поддерживать автозаполнение, первое, что сделает клиент, это стонать об этом сбое. Приветствия! – CountZero