Google Chrome отменить стрелки вверх и вниз - PullRequest
2 голосов
/ 17 апреля 2011

Я создаю виджет AutoSuggest для веб-сайта, который работает так, что когда пользователь пишет что-то в текстовое поле ввода, отображается div с предложениями, и пользователь может перемещаться по нему с помощью мыши или стрелок вверх и вниз.Каждое слово предлагается отдельно (не так, как в Google Sugest, где оно выглядит на всю фразу.У меня проблема с полем ввода Google Chrome, так как при нажатии на стрелку вверх или вниз в браузере используется поведение по умолчанию - переход с помощью carret до конца или начало текстового поля (как с помощью кнопок Home или End).В Firefox и Interet Explorer такого эффекта нет.Как я могу отключить этот эффект?Я возвращаю 'false' из функции обработчика событий, а также использовал здесь функцию http://www.javascripter.net/faq/canceleventbubbling.htm, но Каррет все еще прыгает на Chrome ...

Редактировать: тот же эффект на Safari ...

Ответы [ 2 ]

0 голосов
/ 15 ноября 2011

Не совсем верное решение для вопроса, но я сделал обходной путь, используя эти функции http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/ и отслеживая положение каретки перед событием (или не точно до того момента, когда срабатывает событие нажатия клавиш, каррет все ещев хорошем положении), а затем возвращать его после события.

0 голосов
/ 18 мая 2011

Вы пытались предотвратить поведение по умолчанию?

window.addEventListener('keydown', function(e) {
  e.preventDefault();
  ...
}, false);
...