Safari中的.click()事件与实际点击不同

Ste*_*ven 1 javascript asp.net safari jquery

当用户从文本框中按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" />
Run Code Online (Sandbox Code Playgroud)

我的所有点击事件都会重定向到另一个页面.

当我点击按钮时,它可以工作.当我从IE,Firefox或Chrome中的文本框中按Enter键时,它可以正常工作.

但是当我在Safari中推入Enter时,即使jQuery函数被点击(警报显示),该页面也会执行回发.

有什么理由吗?

小智 6

您需要e.preventDefault();在确定它是回车键后运行.否则,javascript之前的表单发布有机会完成运行.