我正在使用此代码段将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);
}
}
但它不起作用,为什么? 非常感谢
答案 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
。