代码之家  ›  专栏  ›  技术社区  ›  Jose Raul Perera

旧版vb.net应用程序和javascript事件中的回发

  •  1
  • Jose Raul Perera  · 技术社区  · 7 年前

    我有一个旧的vb.net应用程序,需要修改一些功能,我补充道:

    <input type="text" id="hiddenAccountNumber" class="js-card" placeholder="Test" onkeypress="readKeyPress()"/>
    

    功能 readKeyPress 一旦你用键盘输入数据,就会有一些逻辑来读取输入中的数据…我的问题是每次键盘上的一个击键输入,整个页面都会进行回发,而我的javascript代码永远不会执行……我只需要执行我的javascript代码。你知道吗?

    我没有看到任何表单标记实际上这是一段代码:

    <asp:Content ID="Content2" ContentPlaceHolderID="body" runat="server">
    
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
    
        <div class="AccountSummary" style="float:right;">
             <uc:AccountSummary id="ucAccountSummary" runat="server" />
        </div>
    
        <asp:UpdatePanel ID="updateTransactionControls" runat="server" >
            <ContentTemplate>
    

    但它有一些UC,并有以下触发因素:

    <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ucGeneralPaymentPosting" 
                    EventName="SetupPaymentForm" />
                <asp:AsyncPostBackTrigger ControlID="ucGeneralPaymentPosting" 
                    EventName="ClearPaymentForm" />
                <asp:AsyncPostBackTrigger ControlID="ucDentalFirstFinancing" 
                    EventName="InvalidDentalFirstSSN" />
                <asp:AsyncPostBackTrigger ControlID="btnReviewPayment" EventName="Click" />
                <asp:AsyncPostBackTrigger ControlID="btnBackToCollectData" EventName="Click" />
                <asp:AsyncPostBackTrigger ControlID="ucCareCredit" 
                    EventName="ShowAuthorizationForm" />
                <asp:AsyncPostBackTrigger ControlID="btnSubmitPayment" EventName="Click" />
                <asp:AsyncPostBackTrigger ControlID="btnDelete" EventName="Click" />
                <asp:AsyncPostBackTrigger ControlID="btnDelete" EventName="Click" />
                <%--<asp:AsyncPostBackTrigger ControlID="ucThirdPartyLenderAccountInformation" EventName="CheckEmailSelection" />--%>
            </Triggers>
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Máster    7 年前

    您必须返回false以防止回发:

    onkeypress="readKeyPress(); return false;"

    或者在你的最后 readKeyPress() 功能。

    使用 UpdatePanel ScriptManager Ajax Control Toolkit 会是另一个选择。

    编辑:

    那你就得打电话给 preventDefault() 方法:

    https://www.w3schools.com/jsref/event_preventdefault.asp

    下面是一个例子:

    https://stackoverflow.com/a/19379604/1821637