JavaScript KeyCode值在Internet Explorer 8中是"未定义的"

Mat*_*ick 11 javascript javascript-events internet-explorer-8

我遇到了一些我编写的JavaScript问题,但只能使用Internet Explorer 8.我在Internet Explorer 7或更早版本或Mozilla Firefox 3.5或更早版本上执行此操作时没有问题.当我在Internet Explorer 8上使用兼容模式时,它也可以正常执行.

当用户在文本框中输入值时,我正在做的是覆盖Enter键.所以在我的元素上我有这个:

<asp:TextBox ID="ddPassword" runat="server" TextMode="Password" onkeypress="doSubmit(event)" Width="325"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

然后我有以下JavaScript方法:

function doSubmit(e)
{
    var keyCode = (window.Event) ? e.which : e.keyCode;
    if (keyCode == 13)
        document.getElementById("ctl00_ContentPlaceHolder1_Login").click();  
}
Run Code Online (Sandbox Code Playgroud)

同样,这一切都适用于几乎所有其他浏览器.Internet Explorer 8只是让我很难过.

非常感谢您提供的任何帮助.谢谢!

更新:感谢大家的快速反馈.Chris Pebble和Bryan Kyle都帮助解决了这个问题.我已经授予布莱恩"答案"以帮助他的声誉.感谢大家!

Bry*_*yle 25

看起来在IE8下的keyCode属性window.Event是,undefined但是window.event(注意小写e)具有该值的相同属性.你可以尝试使用window.event.

function doSubmit(e)
{
   var keyCode = (window.event) ? e.which : e.keyCode;
   if (keyCode == 13)
      document.getElementById("ctl00_ContentPlaceHolder1_Login").click();  
}
Run Code Online (Sandbox Code Playgroud)


Chr*_*tal 8

只是预感,试试这个:

var keyCode = e.keyCode ? e.keyCode : e.which;
Run Code Online (Sandbox Code Playgroud)