2

シンプルな形です

<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で完全に正常に機能します。ただし、1つの例外があります。特定のIE8インストールでは、ユーザー名ボックスでは機能しますが、パスワードボックスでは機能しません。なぜこれが当てはまるのか誰かが知っていますか?パスワードボックスの動作の違いに関するドキュメントはありません。

アップデート

keyupとevent.whichも試しましたが、どちらも機能しません。ユーザー名ボックスは正常に機能しますが、パスワードボックスは正常にトリガーされません。

4

2 に答える 2

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>
于 2012-10-09T10:00:56.273 に答える
2

jQueryを使用する場合(あなたは:))(keyCodeの代わりに)使用してみてくださいwhich

jQueryは、event.which、event.keyCode、またはevent.charCodeがブラウザーでサポートされているかどうかに応じて、event.whichを正規化します。

if (event.which == 13) {

ここで詳細情報を見つけることができます:http://unixpapa.com/js/key.html(見てください:3。キーの識別

于 2012-06-28T23:04:39.427 に答える