如何阻止模式对话框在单击按钮时关闭?

edd*_*cat 2 javascript asp.net jquery modal-dialog twitter-bootstrap

我在引导模式对话框中有这个按钮:

<button id="btnSelectAll" style="float:left">Select All</button>
Run Code Online (Sandbox Code Playgroud)

单击事件如下所示,它要做的就是将一堆复选框标记为已选中。

$(document).on('click', '#btnSelectAll', function ()
{
    var $modal = $('#MyPanel');
    $modal.find('#aCheckBox').prop('checked', true);

});
Run Code Online (Sandbox Code Playgroud)

这是模式本身的标记(删除了细节,因为它有点长,基本上只是一堆复选框,最后有几个按钮):

   <asp:Panel class="modal" ID="MyPanel" runat="server">
        <div class="modal-dialog modal-lg" style="width:30%">
            <div class="modal-content">
                <div class="modal-header">
                    <asp:Label ID="Header" runat="server" Text="Header" />
                </div>
                <div class="modal-body">
                    <table>
                        <tr>
                            <td style="width: 20px;" />
                            <td>
                                <asp:Label ID="Label" runat="server" Text="Stuff:" />
                            </td>
                           <tr>
                    </table>
               </div>
          </div>
     </div>
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)

正如我在调试器中看到的那样,单击事件代码正在被点击,但是当我单击按钮时,模式对话框总是立即关闭。我似乎无法在网上找到任何东西来解释为什么,谷歌搜索只是给了我一堆“如何在按钮单击时关闭模式”类型的问题。我想知道如何关闭它。

Chr*_*tos 5

你可以试试e.preventDefault。从jQuery 文档中我们可以得到这个

说明:如果调用该方法,则不会触发事件的默认动作。

因此,如果您将代码更改为以下内容:

$(document).on('click', '#btnSelectAll', function (event)
{
    event.preventDefault();
    var $modal = $('#MyPanel');
    $modal.find('#aCheckBox').prop('checked', true);
});
Run Code Online (Sandbox Code Playgroud)

你的问题将会得到解决。