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

87

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

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

Адам
источник

Ответы:

146
$(document).keypress(function(e) {
  if(e.which == 13) {
    // enter pressed
  }
});
sje397
источник
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