Javascript IE8/IE9/IE11:KeyUp上的文本类型输入:在keycode 13上失去焦点
下面的代码应该显示按下键的字符代码,包括回车键(13),但在IE中没有。在IE8/IE9/IE11中(可能是IE10,但我现在没有),当我按下回车键时,它会将焦点移动到另一个元素。为什么以及如何解决这个问题?我可以使用onkeydown,但为什么不能像在所有其他浏览器中一样使用onkeydown呢 我应该说,如果我删除按钮元素或输入类型图像,这将不会发生,但很明显,页面将有许多这样的元素Javascript IE8/IE9/IE11:KeyUp上的文本类型输入:在keycode 13上失去焦点,javascript,internet-explorer,Javascript,Internet Explorer,下面的代码应该显示按下键的字符代码,包括回车键(13),但在IE中没有。在IE8/IE9/IE11中(可能是IE10,但我现在没有),当我按下回车键时,它会将焦点移动到另一个元素。为什么以及如何解决这个问题?我可以使用onkeydown,但为什么不能像在所有其他浏览器中一样使用onkeydown呢 我应该说,如果我删除按钮元素或输入类型图像,这将不会发生,但很明显,页面将有许多这样的元素 <html> <head> <script type=
<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>
函数onuserinput(e){
var-keyC=e.keyCode?e.keyCode:e.charCode;
警报(keyC);
}
随机按钮
试试onkeyup,它应该可以工作。据我所知,onuserinput在按下enter键或失去焦点后会触发,因此keyup必须在之前触发。我也遇到了同样的问题。IE的默认行为似乎是提交“表单”中最近的按钮。要避免这种行为,请将type=“button”与html按钮对应,它对我有效:
<button type='button'>This button will not submit by default</button>
默认情况下,此按钮不会提交
嗯,我使用的是onkeyup…onuserinput没有内置函数,但当onkeyup Firessory读得不好时,我会调用它。是的,您正在使用onkeyup。我能说的是,它必须在IE8上工作,因为我在IE6/8上做过这项工作,并且工作得很好。尝试为所有文档捕获onkeyup,或者仅在输入对象上捕获onkeyup,如果event.target是您的输入,请对其进行处理。只是一个想法。可以肯定的是,当onkeyup
事件触发时,在IE中取消按enter键的默认行为为时已晚。您必须改用onkeydown
或onkeypress
。基本上,IE只是IE的一部分,其行为方式与其他浏览器不同。