JavaScript:在输入文本上使用上下箭头
我对javascript键有一个问题,Chrome(目前仅在Chrome上测试)无法识别文本输入上的上下箭头,因为它有一个默认行为,即更改插入符号位置。 我的代码如下:JavaScript:在输入文本上使用上下箭头,javascript,html,events,user-interface,keyboard,Javascript,Html,Events,User Interface,Keyboard,我对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
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;
}
如果有人有解决办法,我将不胜感激。
谢谢大家! 很难看出代码来自何处(我猜是一个按键侦听器)。 正如您在下面看到的和(正如Teemu也指出的),按键不会在箭头键上被调用 另一方面,请使用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);
这段代码是来自
onkeypress
事件处理程序的吗?如果是这样,请改用onkeydown
,onkeypress
在按箭头键时不会触发。