1

ユーザーがテキスト ボックスから Enter キーを押したときに、ボタンのクリック イベントをトリガーしようとしています。これが私のコードです:

<script type="text/javascript" language="javascript">

    $(document).ready(function () {
        $("#<%= txtSearch.ClientID %>").keypress(function (e) {
            if (e.keyCode == 13) { 
                alert("Hello");   
                $("#<%= lbSearch.ClientID %>").click();
            }
        });
    });

</script>

<asp:TextBox ID="txtSearch" runat="server" />
<asp:LinkButton ID="lbSearch" runat="server" onclick="lbSearch_Click" />

すべてのクリック イベントで、別のページにリダイレクトされます。

ボタンをクリックすると、機能します。IE、Firefox、または Chrome のテキスト ボックスから Enter キーを押すと、機能します。

しかし、Safari で Enter キーを押すと、jQuery 関数がヒットしても (アラートが表示されます)、ページはポストバックを実行するだけです。

これには何か理由がありますか?

4

2 に答える 2

6

e.preventDefault();エンターキーと判断して実行する必要があります。そうしないと、javascript の実行が完了する前にフォームが投稿されます。

于 2012-10-23T20:11:05.477 に答える