Захватить клавишу Enter, нажатую в любом месте страницы


87

Мне нужно зафиксировать нажатие клавиши Enter в любое время в любом месте страницы входа. Это инициирует попытку входа в систему.

Как мне этого добиться с помощью jQuery? И связал бы я его с тегом body?

Ответы:


146
$(document).keypress(function(e) {
  if(e.which == 13) {
    // enter pressed
  }
});

5
Я пробовал это, и я заметил, что нажатие клавиши не запускается для клавиш со стрелками, а нажатие клавиши есть!
Акотян 02

@akotian: Совершенно верно! Но мне нравится более раннее и более полное описание нажатия клавиши и нажатия клавиши из ответа каноэ.
HoldOffHunger

30

Событие keydown запускается при нажатии клавиши.
Событие нажатия клавиши запускается, когда клавиша нажата, и эта клавиша обычно производит символьное значение.

$(document).keydown( function(event) {
  if (event.which === 13) {
    // login code here
  }
}); 

1
Это работает лучше, чем keypress. Например, я мог keypress определить, когда была нажата клавиша ESC. Но keydownработает отлично. Спасибо!
Laszlo the Wiz
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.