Клавиши со стрелками не работают при вводе и текстовой области

У меня есть простая текстовая область и вклад в мое веб-приложение. По какой-то причине я не могу вернуться в набранный текст с помощью клавиш со стрелками. Курсор ввода не перемещается назад.

Однако я могу использовать ctrl + a или щелкнуть мышью в той позиции, которую я хочу редактировать. Это смущает. Я не использую e.preventDefault ни в одном ключевом событии в моем коде - имея около 30 файлов js и несколько огромных файлов css -.

Любые идеи о том, почему стрелки не могут работать?

Спасибо!

4 ответа

Решение

Выполните поиск по всем вашим JS-файлам и найдите что-то похожее на:

keyCode == 37

или же

which == 37

так как это левая стрелка. Вероятно, где-то есть что-то похожее на:

if (e.keyCode == 37)
   e.preventDefault();

Просто чтобы добавить комментарий, чтобы помочь людям загружать ввод и текстовые сообщения внутри лайтбокса. Большинство лайтбоксов связывают клавиши со стрелками с навигацией по фотографиям (предыдущая, следующая), поэтому клавиши со стрелками не будут работать в полях формы.

Чтобы это исправить, просто найдите в коде JavaScript вашего лайтбокса коды клавиш (как предложил Жюль) и удалите блок кода, который связывает клавиши со стрелками. Или вы можете обусловить это.

Например, в right-lightbox.js код привязки клавиш

var b=p.current,c=({27:"close",33:"prev",37:"prev",38:"prev",39:"next",40:"next",34:"next"})[a.keyCode];

27 является ключом выхода, так что вы можете оставить его там и удалить все остальное.

Как указано в этом комментарии , хорошим способом устранения этой проблемы может быть инструмент разработчика: выберите проблемную текстовую область (например, используя Ctrl + Shift + C) и перейдите кEvent listenersвкладка.

Я нашел причину поведения подkeydownкатегория. Как и ожидалось, это былe.preventDefault();что я как-то раньше упустил.

Вы также можете искать такие вещи, как:

      @HostListener('keydown.arrowup', ['$event']) keyUp(event) {

или же

      @HostListener('keydown.arrowdown', ['$event']) keyUp(event) {
Другие вопросы по тегам