Отмена действия при нажатии на стрелочки в input'е

Появилась необходимость убрать перемещение курсора в начало/конец input'а при нажатии стрелочек вверх/вниз. Как это реализовать? Желательно с использованием jQuery.


Ответы (2 шт):

Автор решения: frozencoast

Использовать preventDefault для события keydown

$('input').keydown(function(e) {
  if (["ArrowDown", "ArrowUp"].indexOf(e.key) > -1) {
    e.preventDefault();
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" value="Some value">

→ Ссылка
Автор решения: Vadim

Вот, я бы сделал так, instead ответ frozencoast'a

$('input').keydown((e)=>{
    if(e.keyCode === 38 || e.keyCode === 40){
        e.preventDefault();
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" value="Some value">

Или можно еще проще:

$('input').keydown((e)=>(e.keyCode === 38 || e.keyCode === 40) ? e.preventDefault() : 0);
→ Ссылка