簡體   English   中英

如何在仍然允許javascript運行的同時防止回發?

[英]How can I prevent postback while still allowing javascript to run?

此Asp.Net頁的一部分包含以下內容:

<asp:Panel runat="server" DefaultButton="get">
    Enter Employee Name or Click Search to Return All:
    <asp:TextBox runat="server" ID="participant" ></asp:TextBox>
    <asp:Button runat="server" ID="get" UseSubmitBehavior="false" Text="Search" />
</asp:Panel>

以此為動力:

$(document).ready(function () {
            $("#get").click(function (e) {
                e.preventDefault();
                document.getElementById('<%= userTable.ClientID %>').style.display = "block";
                getUserNames();
            });
            $("#content_contentPlaceHolder_participant").keypress(function (event) {
                if (event.keyCode == 13) {
                    $("#get").click();
                }
            });
        });

除Chrome之外,此功能均可在其他地方使用。 使用Enter鍵在Chrome中提交此字段會導致整個頁面重新加載。

我嘗試在后面的代碼中添加此代碼,但它阻止了javascript觸發:

participant.Attributes.Add("onkeydown", "return (event.keyCode!=13);");

如何解決此問題,以便Enter鍵不會導致回發,但仍會觸發JS?

我通過添加一個額外的preventDefault()解決了該問題。

$(document).ready(function () {
        $("#get").click(function (e) {
            e.preventDefault();
            document.getElementById('<%= userTable.ClientID %>').style.display = "block";
            getUserNames();
        });
        $("#content_contentPlaceHolder_participant").keypress(function (event) {
            if (event.keyCode == 13) {
                event.preventDefault(); // <-- added this line
                $("#get").click();
            }
        });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM