2012-06-28 23 views
1

我有一個簡單的表格KeyUp/KeyDown keyCode無法在IE中使用密碼字段?

<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')); 
     } 
    }); 
}); 

這工作完全正常的FF,IE7,IE 9,Chrome瀏覽器,Safari瀏覽器....有一個例外。某些IE8安裝適用於用戶名框,但不適用於密碼框。有誰知道爲什麼這可能是這種情況。我沒有看到有關密碼框行爲差異的任何文檔。

更新

我也試過KEYUP,以及event.which,這兩者都不工作,要麼。用戶名框工作正常,但密碼框不會像它應該觸發。

+0

,嘗試更換' keydown'與'keyup'。等等,什麼不行...? – gdoron

+0

標題是關於'keyup',你的代碼使用'keydown' ....?! – gdoron

+0

我試過了keyup和keydown。該代碼不起作用,僅用於密碼框。用戶名可用,但密碼不可用。 –

回答

2

如果您使用jQuery(你:))嘗試(而不是鍵代碼)使用which

jQuery的正常化event.which取決於event.which,event.keyCode或event.charCode是否

if (event.which == 13) { 

在這裏你可以找到更多的信息:http://unixpapa.com/js/key.html(請看:3.標識鍵

瀏覽器支持
+0

我也試過這個 - 但是它仍然不能在密碼字段上使用。 –

2

直接在密碼字段附加的按鍵處理並沒有爲我無論是在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>