Добавить четного слушателя Для каких буквенных клавиш нажата? - PullRequest
2 голосов
/ 15 ноября 2010

Мне интересно, как создать прослушиватель событий, чтобы при нажатии любой из символьных клавиш появлялась форма, а первый ввод находился в фокусе и получал ввод, что-то вроде стиля поиска только для типаоперационная система webOS 2.0, но для контактной формы.Есть ли способ сделать это?Если вы не знакомы с этой ссылкой, просто введите функцию

http://www.youtube.com/watch?v=ixPsB7-tVGo

Ответы [ 2 ]

7 голосов
/ 15 ноября 2010

Я не знаю, можно ли подписаться только на буквенные ключи.

Лучше всего было бы использовать jQuery для подписки на .keydown () / .keyup () и проверить код клавиши события, чтобы увидеть, какая это буква.Если это не буква, ничего не делайте.

Например:

$('#target').keydown(function(event) {
  if (event.keyCode >= 65 && event.keyCode <= 90) { // if a letter pressed
     // play that funky music.  
  }
});

Подробнее о $. Keydown .

Список коды клавиш .

5 голосов
/ 15 ноября 2010

Используйте событие keypress для любых связанных символов. keydown и keyup не могут быть надежно использованы для этой цели. Нижеследующее адаптировано из моего ответа на недавний связанный вопрос :

function isCharacterKeyPress(evt) {
    if (typeof evt.which == "undefined") {
        // This is IE, which only fires keypress events for printable keys
        return true;
    } else if (typeof evt.which == "number" && evt.which > 0) {
        // In other browsers except old versions of WebKit, evt.which is
        // only greater than zero if the keypress is a printable key.
        // We need to filter out backspace and ctrl/alt/meta key combinations
        return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which != 8;
    }
    return false;
}

var input = document.getElementById("your_input_id");
input.onkeypress = function(evt) {
    evt = evt || window.event;

    if (isCharacterKeyPress(evt)) {
        // Do your stuff here
        alert("Character!");
    }
};
...