элемент onkeydown keycode javascript - PullRequest
3 голосов
/ 27 октября 2009

Я использую этот фрагмент кода для добавления обработчика событий KeyDown к любому элементу в HTML-форме

for(var i=0;i<ele.length;i++)
{
    ele[i].onkeydown = function()
    {
            alert('onkeydown');
    } 
}

Как узнать, какая клавиша была нажата при событии нажатия клавиши? Я пытаюсь это

for(var i=0;i<ele.length;i++)
{
    ele[i].onkeydown = function(e)
    {
           alert(e.KeyCode);
    } 
}

но это не работает, почему? Большое спасибо

Ответы [ 4 ]

5 голосов
/ 27 октября 2009

Это код, который я использую для этой проблемы. Работает в любом браузере.

//handle "keypress" for all "real characters"     
if (event.type == "keydown") {
    //some browsers support evt.charCode, some only evt.keyCode
   if (event.charCode) {
      var charCode = event.charCode;
   }
   else {
      var charCode = event.keyCode;
   }
}
3 голосов
/ 22 марта 2011

Я использовал это:

function check(){
 if (event.keyCode == 32){
  alert("Space is pressed");
 }
}

и в моем теле тег: onKeyPress="check()"

3 голосов
/ 27 октября 2009

Для обнаружения Enter вы можете использовать следующий код, который будет работать во всех основных браузерах. Он использует событие keypress вместо keydown, потому что Enter производит печатный символ:

ele[i].onkeypress = function(evt) {
    evt = evt || window.event;
    var charCode = evt.keyCode || evt.which;
    if (charCode == 13) {
        alert("Enter");
        // Do stuff here
    }
};
0 голосов
/ 27 октября 2009

Это keyCode, а не KeyCode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...