Ответ 1
Вам нужно отфильтровать коды клавиш со стрелками (37,38,39,40), попробуйте следующее:
Обратите внимание на function(e)
вместо function()
- это позволяет захватить событие и, следовательно, key code.
$('#search-form .search-terms').on('keydown', function(e){
// get keycode of current keypress event
var code = (e.keyCode || e.which);
// do nothing if it an arrow key
if(code == 37 || code == 38 || code == 39 || code == 40) {
return;
}
// do normal behaviour for any other key
$('#search-items #autocom').fadeIn();
});
Нажмите для списка кодов клавиш
Заметка из документов keypress
/keyup
/keydown
:
Обратите внимание, что keydown и keyup предоставляют код, указывающий, какая клавиша нажата, а нажатие клавиши указывает, какой символ был введен. Например, нижний регистр "a" будет отображаться как 65 с помощью keydown и keyup, но как 97 нажатием клавиши. В верхнем регистре "А" сообщается как 65 по всем событиям. Из-за этого различия при выборе особых нажатий клавиш, таких как клавиши со стрелками,.keydown() или .keyup() - лучший выбор.
Событие keypress
работает в почти во всех ситуациях, но разумно использовать keyup
или keydown
, потому что некоторые браузеры (я думаю, некоторые старые версии Firefox) не обнаруживают определенных ключей, например, клавиши со стрелками, используя событие keypress
.