0

我们正在使用以下代码为 IE 中的 onKeyPress 事件分配新的键代码:

window.event.keyCode=65

在 IE 中,这会更改链中其他事件处理程序接收的密钥,但此代码在 chrome 中不起作用。有没有办法做到这一点?

示例 HTML:

<input type="text" name="hotelfloornew" id="hotelfloornew" 
       onkeypress="uPPer();" size="25" />

对应的JS:

function uPPer()
{
    switch (window.event.keyCode)
    {       
        case 97:window.event.keyCode=65;break;
        case 98:window.event.keyCode=66;break;  
        case 99:window.event.keyCode=67;break;  
        case 100:window.event.keyCode=68;break;
.
.
.

    }
}
4

3 回答 3

3

IE 分配了一个全局事件值,但这不是标准化的。在其他浏览器中,使用提供给您的回调的值:

window.onkeypress = function(event) {
   console.log(event.keyCode);
}
于 2012-10-01T14:09:12.213 回答
1

更改keyCode事件的属性是一种只能在旧 IE 中使用的骇人听闻的技巧。它应该是只读的,并且在所有合理的浏览器中。不要这样做。

如果您需要更改按键的效果,请阻止其默认操作并手动执行您自己的替换操作。如果要将键入的字符映射到其他字符,可以使用我之前在 Stack Overflow 上发布的代码

于 2012-10-01T15:01:59.087 回答
0
function doKey(e) {
        evt = e || window.event; // compliant with ie6        
        alert(evt.keyCode+' Pressed');
    }

window.event.keyCode 主要用于 IE... 这是一个示例代码,它将提醒所有导航器中按下的 keyCode。

于 2012-10-01T14:11:39.873 回答