Реагирует, когда пользователь нажимает ENTER - PullRequest
0 голосов
/ 19 января 2012

Я работаю над приложением, в котором должна быть возможность запустить функцию, если пользователь нажимает ENTER независимо от того, где находится фокус на странице (например, втекстовое поле или кнопка и т. д.)

Ниже приведен код, с которым я экспериментировал, просто чтобы узнать, как реагировать, когда пользователь нажимает ENTER , ноэто не работаетЧто я делаю неправильно?Заранее спасибо!

var Capsule = {

init: function() {
    var button = document.getElementById("txtInput");
    button.focus();

    Capsule.events();
},

events: function() {
    function checkKeyboard(e) {
        if (e.keyCode == 13) {
            console.log("Pressed ENTER.");
            return false;
        }
    }
}
}

window.onload = Capsule.init;

1 Ответ

3 голосов
/ 19 января 2012

Также необходимо связать событие ..

  • onkeydown - если вы хотите захватить событие сразу после нажатия клавиши.
  • onkeypress- если вы хотите захватить каждое нажатие клавиши, удерживая клавишу нажатой.
  • onkeyup - Если вы хотите захватить событие сразу после нажатия клавиши.

Поскольку выиспользуя return false; (я рекомендую e.preventDefault(), вы, вероятно, ищете onkeydown или onkeypress. Невозможно предотвратить действие по умолчанию на onkeyup, поскольку поведение по умолчанию уже произошло.

Код:

events: function() {
    function checkKeyboard(e) {
        if (e.keyCode == 13) {
            console.log("Pressed ENTER.");
            return false;
        }
    }
    window.onkeypress = checkKeyboard; //Or: document.onkeypress = ..
}
...