jquery手风琴内的asp按钮不引发服务器事件

Posted

技术标签:

【中文标题】jquery手风琴内的asp按钮不引发服务器事件【英文标题】:asp button inside jquery accordion not raising server event 【发布时间】:2017-06-21 12:12:11 【问题描述】:

我正在使用 jquery UI 手风琴。在手风琴内部,有一些文本框和 asp 按钮。当我单击按钮时,服务器事件没有触发。但是 OnClientClick 被解雇了。

手风琴内部的asp按钮都没有触发,为什么会这样?

<asp:Content ID="UserContent" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
    <script type="text/javascript" src="../Scripts/jquery-3.1.1.min.js"></script>
    <script type="text/javascript" src="../Scripts/jquery-ui-1.12.1.min.js"></script>
    <script type="text/javascript">
        $(function () 
            $("#accordion").accordion();
        );

        function BtnTrigger() 
            alert("button pressed");
        
    </script>
    <div id="accordion">
        <h3>Change Password</h3>
        <div>
            <div>
                <div>
                    <b>Previous Password: :</b>
                    <asp:TextBox ID="txt_prev_pwd" TextMode="Password" runat="server" AutoCompleteType="Disabled"  MaxLength="15" />
                    <asp:RequiredFieldValidator ID="rqd_txtpwd" runat="server" ErrorMessage="Please enter the password" ControlToValidate="txt_prev_pwd" />
                </div>
                <div>
                    <b>New Password :</b>
                    <asp:TextBox ID="txt_new_pwd" TextMode="Password" runat="server" AutoCompleteType="Disabled"  MaxLength="15" />
                    <asp:RequiredFieldValidator ID="rqd_txt_new_pwd" runat="server" ErrorMessage="Please enter the new password" ControlToValidate="txt_new_pwd" />
                </div>
            </div>
            <asp:Button ID="btn_pwd" runat="server" Text="Update" OnClick="btn_pwd_Click" />
        </div>
        <h3>Change Department</h3>
        <div>
            <div>
                <div>
            <b>Department :</b>
            <asp:ListBox ID="listBoxDepartment" runat="server" Rows="1" Width="300px"></asp:ListBox>
        </div>
            </div>
            <asp:Button ID="btn_chng_depart" runat="server" Text="Update" OnClick="btn_chng_depart_Click" OnClientClick="BtnTrigger();" />
        </div>
    </div>
</asp:Content>

// code behind
protected void btn_chng_depart_Click(object sender, EventArgs e)
        
            try
            
                // code
            
            catch (Exception ex)  
        

【问题讨论】:

【参考方案1】:

尝试以下任何修复方法。

CausesValidation="false" 添加到按钮 如果OnClientClick 句柄创建异常,则取消回发。确保你也return true;。 确保按钮位于&lt;asp:form runat="server"&gt; 标记内 删除javascript alert以防万一 您的页面指令中是否设置了AutoEventWireup="true"? 尝试在页面加载时连接事件:btn_pwd.Click += new EventHandler(btn_pwd_Click);

希望对你有帮助

【讨论】:

以上是关于jquery手风琴内的asp按钮不引发服务器事件的主要内容,如果未能解决你的问题,请参考以下文章

我无法在 jQuery UI 手风琴内的表单中输入文本

从放置在更新面板外部的控件触发 asp.net 事件

Jquery asp.net 按钮单击事件通过 ajax

jQuery UI手风琴内的nicedit textarea宽度无法正常工作

除了像 onclick 这样的委托处理程序事件之外,Jquery 直接事件不会触发?

ASP.NET JQuery,禁用表单提交按钮不调用 httpPost 操作