如何仅从模态中删除背景

时间:2017-12-27 17:56:13

标签: javascript c# jquery asp.net twitter-bootstrap

我目前正在使用Twitter bootstrap,最近我遇到了关闭模式时背景没有关闭的问题。

解决:

 $('.modal-backdrop').hide();

此解决方案存在的问题是,它会从整个页面中删除背景幕。当页面加载某些功能时,我仍然需要它,这样用户就不会在此过程中选中或取消选中某个字段。

在模态的代码下面:

    <div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog ">
            <!-- Modal content-->

            <div class="modal-content">
                <div class="modal-header">
                    <asp:HiddenField ID="hfImg" runat="server" />
                </div>
                <div class="modal-body" style="overflow: auto; align-content: center;">
                    <div class="col-sm-12">

                        <div id="views"></div>

                    </div>
                </div>
                <div class="modal-footer">
                    <div class="row">
                        <div class="col-sm-12">
                            <div class="col-sm-1 pull-left">
                                <button type="button" class="btn btn-primary" data-dismiss="modal";">Cancelar</button>
                            </div>
                            <div class="col-sm-1 col-sm-offset-8">
                                <button id="cropbutton2" class="btn btn-primary pull-right" type="button" onclick="applyCrop();">Cut</button>
                            </div>
                            <div class="col-sm-1 col-sm-offset-1">
                                <asp:Button runat="server"  CssClass="btn btn-primary pull-right" ID="save" Text="Edit" OnClick="btnEdit_Click" />
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
保存按钮后面的

c#:

     btnEdit_Click(object sender, EventArgs e) 
     {
      ...
      ...
      ...
      ...
      ...
      ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "modal", "closeModal();", true);
      }

CloseModal()的javascript:

      function closeModal() {
        $('.modal-backdrop').hide();
        $('body').removeClass('modal-open');
        $('#myModal').modal('hide');
        $('#<%=hfImg.ClientID%>').val("");
    }

有人可以帮助我,我对这个框架没有多少经验,甚至不知道这是否以正确的方式完成。

Ps:此页面是ascx

编辑: 我正在工作的这个项目很旧,我没有在开发它的过程中工作。

但是现在我只是给它一点支持和维护。 原来这里有一个架构问题。最初的开发人员尝试使用客户端控制结构中的页面始终执行的完整后备文件进行操作,从而在更新面板中进行所有这些控制。

由于所涉及的技术(Ajax和其他东西),他们不希望每次用户客户端检查或取消选择某些内容或在另一个选项卡中打开子菜单时进行完整的回发。因此,他们看起来所有页面仍然只在更新面板上进行了少量更新。

为此目的,Master上定义了背景幕。

只有我的引导程序失去对它之前引用的真实对象的引用,因为每当你改变任何东西(包括关闭模态)时页面都会得到回发。因此,当我在模态背景上执行.hide或.remove时,bootstrap实际上是针对它可以找到的唯一引用,因此是在母版页上定义的引用。

因为它会花费更多的工作并且使用的时间比我们处理的要多得多,所以我们决定在没有背景的情况下离开模态,在模态标记上使用data-backdrop:false。

感谢大家的帮助。

1 个答案:

答案 0 :(得分:5)

简单,将data-backdrop="false"放在触发模型或

的按钮上
$("#myBtn2").click(function(){
    $("#myModal").modal({backdrop: false});
});

here是完整的参考资料