Я работаю с базовым текстовым полем HTML <input type="text"/>
с числовым значением.
Я добавляю событие JavaScript keyup
, чтобы увидеть, когда пользователь нажимает клавишу со стрелкой вверх (e.which == 38
), а затем увеличиваю числовое значение.
Код работает хорошо, но меня беспокоит одна вещь. И Safari / Mac, и Firefox / Mac перемещают курсор в самое начало, когда я нажимаю клавишу со стрелкой вверх. Насколько мне известно, это поведение по умолчанию для каждого текстового поля <input type="text"/>
, и это имеет смысл.
Но это создает не очень эстетичный эффект прыжков курсора назад и вперед (после изменения значения).
Прыжок в начале происходит на keydown
, но даже зная это, я не могу предотвратить его. Я пробовал следующее:
input.addEventListener('keydown', function(e) {
e.preventDefault();
}, false);
Добавление e.preventDefault()
в событие keyup
тоже не помогает.
Есть ли способ предотвратить перемещение курсора?
Сломал! Большое спасибо, это прекрасно. :)
– riddle04 июля 2009, 10:58