下面的代码应该显示按下的键的charcode,包括输入(13),但它不在IE中。在IE8/IE9/IE11中(可能是IE10,但我现在没有它),当按下Enter键时,它将焦点移到另一个元素上。为什么以及如何解决这个问题?我可以使用onkeydown,但为什么不能在onkeyup以及所有其他浏览器中使用?IE8/IE9/IE11:文本类型输入onkeyup:on keycode 13失去焦点
我应该说这不会发生,如果我删除按钮元素或输入类型的图像,但显然一页会有很多这样的元素。
<html>
<head>
<script type="text/javascript">
function onuserinput(e) {
var keyC = e.keyCode ? e.keyCode : e.charCode;
alert(keyC);
}
</script>
</head>
<body>
<input type="text" id="myinput" onkeyup="onuserinput(event);"/>
<input type="image" id="img" src="" alt="random input type image" title=""/>
<button id="aaa">random button</button>
</body>
</html>
很肯定为时已晚,以抑制撞击在IE中输入键的默认行为时'onkeyup'事件火灾。您必须改用'onkeydown'或'onkeypress'。基本上只是IE浏览器,而不是像其他浏览器一样行事。 –