javascript - jquery Accordion 内的 asp 按钮不引发服务器事件

标签 javascript c# jquery asp.net jquery-ui

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

Accordion 内的 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) { }
        }

最佳答案

尝试以下任意修复。

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

希望这有帮助

关于javascript - jquery Accordion 内的 asp 按钮不引发服务器事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42035828/

相关文章:

jquery - 是否可以让 Pretty Photo Js 在打开单个图像时显示图像序列?

javascript - 将类添加到 Android Webview 中的 DOM 元素时,CSS 样式更改需要 2-3 秒才能显示出来

javascript - 可以使用 jquery 根据其 div 类跳到页面的特定部分吗?

javascript - 为什么 Eclipse 不在 JavaScript 中取消缩进大括号?

c# - 当涉及异步函数时,如何仅在需要时初始化一些数据

javascript - 如何在文件上传时显示加载图形?

javascript - Meteor.userId 是可变的

c# - 将数据从一种表单传递到另一种表单时出现问题

c# - 使用C#将一些数据插入到多个表中

javascript - 当我将鼠标焦点放在元素上时,mouseenter 和 mouseleave 会继续触发