以下代码应显示按下的键的charcode,包括enter(13),但它不在IE中。在IE8 / IE9 / IE11(可能是IE10,但我现在没有它的某个地方),当我按下回车键时,它会将焦点移动到另一个元素。为什么以及如何解决这个问题?我可以使用onkeydown,但为什么不能使用onkeyup以及所有其他浏览器?
我应该说如果我删除按钮元素或输入类型图像不会发生这种情况,但显然页面会有很多这样的元素。
<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>
答案 0 :(得分:0)
尝试 onkeyup ,它应该有效。据我所知, onuserinput 在按下输入或失去焦点后触发,因此keyup必须先触发。
答案 1 :(得分:0)
我遇到了同样的问题。 IE默认行为似乎是在“表单”中提交最近的按钮。为避免这种行为,在html按钮中包含type =“button”propierty,它对我有用:
<button type='button'>This button will not submit by default</button>