元素onkeydown keycode javascript

时间:2009-10-27 10:30:55

标签: javascript html dom

我正在使用此代码段将KeyDown事件处理程序添加到html表单中的任何元素

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

我怎么知道keydown事件上按了哪个键?我试试这个

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

但它不起作用,为什么? 非常感谢

4 个答案:

答案 0 :(得分:5)

这是我用于此问题的代码。它适用于每个浏览器。

//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;
   }
}

答案 1 :(得分:3)

要检测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
    }
};

答案 2 :(得分:3)

我用过这个:

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

和我的身体标签:onKeyPress="check()"

答案 3 :(得分:0)

keyCode,而不是KeyCode