JavaScript KeyCode值在Internet Explorer 8中为“未定义”

前端之家收集整理的这篇文章主要介绍了JavaScript KeyCode值在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>

然后我有以下JavaScript方法

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

再次,几乎所有其他浏览器都可以正常工作. Internet Explorer 8只是给我一个困难的时刻.

任何帮助,你可能会非常感激.谢谢!

更新:感谢大家的快速反馈. Chris Pebble和Bryan Kyle均协助解决此问题.我已经授予布莱恩“答案”来帮助他的名声.感谢大家!

解决方法

它看起来像IE8下的window.Event的keyCode属性是未定义的,但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();  
}

猜你在找的JavaScript相关文章