IE8 / IE9 / IE11:文本类型输入onkeyup:on keycode 13失去焦点

时间:2014-01-27 11:21:55

标签: javascript internet-explorer

以下代码应显示按下的键的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>

2 个答案:

答案 0 :(得分:0)

尝试 onkeyup ,它应该有效。据我所知, onuserinput 在按下输入或失去焦点后触发,因此keyup必须先触发。

答案 1 :(得分:0)

我遇到了同样的问题。 IE默认行为似乎是在“表单”中提交最近的按钮。为避免这种行为,在html按钮中包含type =“button”propierty,它对我有用:

<button type='button'>This button will not submit by default</button>