我的javascript键有问题,Chrome(现在只在chrome上测试)无法识别文本输入上的向上和向下箭头,因为它具有更改插入位置的默认行为。 我的代码如下:
if (!e) e = window.event;
var keyCode = e.keyCode || e.which;
if (keyCode == '13'){ //enter key
//some code that works
return false;
}else if(keyCode=='38'){ //up key
//some other code that doesn't work
return false;
}else if(keyCode=='40'){ //down key
//some other code that doesn't work
return false;
}
如果有人有解决方案,我会非常感激。 谢谢!
答案 0 :(得分:1)
很难看到代码的来源(我猜是一个按键监听器)。 如下所示,this fiddle(以及Teemu也指出),不会在箭头键上调用keypress。
另一方面,使用event.preventDefault()来防止浏览器的默认行为,在您放置插入符号的情况下,您的侦听器函数也可以将事件对象作为参数。
var listener = function (e) {
e = e || window.event;
alert(e.type);
var keyCode = e.keyCode || e.which;
if(keyCode=='38' || keyCode=='40'){ //arrow key
alert("arrow!");
e.preventDefault();
return false;
}
}
var elem = document.getElementById('input');
elem.addEventListener('keydown', listener, false);