Jquery KeyUp/KeyDown键码在IE中的密码字段上不起作用?

Jquery KeyUp/KeyDown键码在IE中的密码字段上不起作用?,jquery,asp.net,internet-explorer,Jquery,Asp.net,Internet Explorer,我有一个简单的表格 <asp:TextBox ID="txtUsername" runat="server" CssClass="watermarkOn" TabIndex="1" /> <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" CssClass="watermarkOn" TabIndex="2" /> <asp:LinkButton ID="btnLogin" runat="

我有一个简单的表格

<asp:TextBox ID="txtUsername" runat="server" CssClass="watermarkOn" TabIndex="1" />
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" CssClass="watermarkOn" TabIndex="2" />
<asp:LinkButton ID="btnLogin" runat="server" CssClass="imgbtn_login" TabIndex="3" Text="login" onclick="btnLogin_Click" CausesValidation="false" />

使用以下jQuery

$(document).ready(function () {
    $("#<%=txtUsername.ClientID %>").keydown(function (event) {
        if (event.keyCode == 13) {
            eval($("#<%=btnLogin.ClientID %>").attr('href'));
        }
    });
    $("#<%=txtPassword.ClientID %>").keydown(function (event) {

        if (event.keyCode == 13)
        {
            eval($("#<%=btnLogin.ClientID %>").attr('href'));
        }
    });
});
$(文档).ready(函数(){
$(“#”).keydown(函数(事件){
如果(event.keyCode==13){
eval($(“#”)attr('href');
}
});
$(“#”).keydown(函数(事件){
如果(event.keyCode==13)
{
eval($(“#”)attr('href');
}
});
});
这在FF、IE7、IE9、Chrome、Safari中工作得非常好,只有一个例外。某些IE8安装它适用于用户名框,但不适用于密码框。有人知道为什么会这样吗。我没有看到任何关于密码框行为差异的文档

更新

我也试过keyup和event.which,两者都不起作用。用户名框工作正常,但密码框不会像它应该的那样触发。

如果您使用jQuery(您是:))请尝试(而不是使用keyCode)使用
,其中

jQuery根据浏览器是否支持event.which、event.keyCode或event.charCode对event.which进行标准化:


在这里,您可以找到更多信息:(查看:3.识别密钥

直接在密码字段上附加按键处理程序在IE中也不适用,但您可以将其附加到其父项:

<script type="text/javascript">
$("#loginForm").keypress(function(e) {
    if (e.keyCode == $.ui.keyCode.ENTER) {
        // do your thing :)
    }
});
</script>

<form id="loginForm" action="...">
  <input type="text" id="username" value="" />
  <input type="password" id="password" />
  ...
</form>

$(“#loginForm”)。按键(功能(e){
如果(e.keyCode==$.ui.keyCode.ENTER){
//做你的事:)
}
});
...

虽然这很奇怪,听起来像个bug,但尝试用
keyup
替换
keydown
。等等,什么不起作用…?标题是关于
keyup
,而您的代码正在使用
keydown
?!我已经试过键控和键控。代码不起作用,只针对密码框。用户名起作用,但密码不起作用。我也尝试过这个方法,但是它仍然不能仅在密码字段中起作用。
<script type="text/javascript">
$("#loginForm").keypress(function(e) {
    if (e.keyCode == $.ui.keyCode.ENTER) {
        // do your thing :)
    }
});
</script>

<form id="loginForm" action="...">
  <input type="text" id="username" value="" />
  <input type="password" id="password" />
  ...
</form>