Отключение автозаполнения пользовательского интерфейса jQuery после выбора приводит к тому, что первый ввод не работает в Chrome - PullRequest
0 голосов
/ 01 декабря 2011

Я создаю сложное автозаполнение текстовой области, аналогичное Twitter, которое включает в себя отключение автозаполнения после выбора и повторное включение автозаполнения, когда пользователь вводит специальный символ.

Я обнаружил ошибку в Chrome и IE, которой нет в Firefox.

В Chrome после выбора элемента с помощью ввода и отключения автозаполнения текстовой области первый ввод с клавиатуры игнорируется. Например, выберите параметр автозаполнения, а затем нажмите пробел. Пространство игнорируется. Хит это снова, и это работает.

Первый пробел не игнорируется в Firefox, но в Chrome.

Вот простой пример, который я настроил на http://jsfiddle.net/H4ayD/, чтобы проиллюстрировать проблему.

Есть идеи, как это исправить?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2011

Я нашел простой обходной путь для решения проблемы. Запуск события нажатия клавиши в области ввода после выбора элемента из автозаполнения устраняет проблему.

$('#autocomplete').trigger('keypress');

Вы можете увидеть исправление работы здесь: http://jsfiddle.net/HKxua/

0 голосов
/ 01 декабря 2011

Чтобы избежать этого, вы можете вместо этого использовать «уничтожить» или скрыть ввод автозаполнения и заменить его обычным вводом.Возможно, вам придется пересоздать автозаполнение позже, в зависимости от требований вашего приложения.

Я уверен, что есть более элегантное решение, но я пока не совсем понял, что делает «отключение» для создания такого поведения.

...