在另一个模态框中使用Bootstrap模态框 - 关闭按钮问题

3
在我的JSP页面中,我有一个模态框展示了另一个模态框(内部模态框)的页面。
第一个模态框:
<div class="modal-dialog modal-lg"  style="background: white;  width: 90% !important">
<input type="hidden" id="report-request-data-id" value="${requestId}"/>
<div class="modal-body">
  <div id="reportDataDetailsDiv"></div>
</div>
<div class="modal-footer">
              
    <label class="btn-is float">
        <spring:message code='close.label'/>
        <input type="button" id="close_report_request_view" class="col-xs-3 col-lg-1 col-md-1" data-dismiss="modal" style="display: none;"/>
    </label>
              
    </div>
</div>

内部模态框(在上面带有ID“reportDataDetailsDiv”的div中加载):
<div class="modal-dialog modal-lg" style="background: white;border-radius: 6px;">
<div class="modal-body">
<div class="modal-content">
<div class="col-centered col-lg-12 col-xs-12 ">


.....etc


<div class="modal-footer">
              
        <label class="btn-is float">
            <spring:message code='close.label'/>
            <input type="button" class="cus-close-modal-btn col-xs-3 col-lg-1 col-md-1" style="display: none;"/>
        </label>
              
    </div>
    </div>
    </div>
</div>

当我在内部模态框中点击关闭按钮时,问题就会发生。当我这样做时,两个模态框都关闭了,但是我希望每个模态框的关闭操作是独立的。我该如何正确处理?谢谢。

你好,其他的模态框怎么显示?另外,你能使用jQuery吗? - Swati
它使用Ajax调用在Javascript中加载。是的,我使用了jquery来处理内部模态框的关闭。但是一旦它关闭,第一个模态框就会被冻结,无法滚动。因此,我需要一种清晰的方法来解决这个问题。 - Traveling Salesman
1个回答

0

由于您正在加载位于主模态框内的reportDataDetailsDiv中的其他模态框,因此可以使用.show()来显示它,并且每当单击close按钮时,可以删除添加在reportDataDetailsDiv中的整个div

演示代码

//suppose other modal is added like below
$(".addmodal").click(function() {
  //append modal undr div
  $("#reportDataDetailsDiv").html('<div class="modal-dialog modal modal-child" style="background: white;border-radius: 6px;" ><div class="modal-body"><div class="modal-content">Some message to show ....<div class="col-centered col-lg-12 col-xs-12 "><div class="modal-footer">  <label class="btn-is float"><input type="button" class="cus-close-modal-btn " value ="Close" style=""/> </label> </div></div></div></div>')
  $(".modal-child").show(); //show that modal
  $(this).hide();
  $("#close_report_request_view").prop('disabled', true);//disable main modal button
})

//onclick of close button for modal added
$(document).on('click', '.cus-close-modal-btn', function() {
  $(this).closest(".modal-child").remove(); //remove whole div
  $("#close_report_request_view").prop('disabled', false);//enable main modal buton
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<a href="#myModal" role="button" class="btn btn-primary" data-toggle="modal">Click to open modal</a>
<div class="modal-dialog modal fade modal" id="myModal" tabindex="-1" role="dialog" aria-hidden="true" style="background: white;  width: 90% !important">
  <input type="hidden" id="report-request-data-id" value="1" />
  <div class="modal-body">
    <div id="reportDataDetailsDiv"></div>
  </div>
  <button class="addmodal btn btn-primary">Click me to open other modal</button>
  <div class="modal-footer">
    <label class="btn-is float">
      Close
        <input type="button" id="close_report_request_view" class="col-xs-3 col-lg-1 col-md-1" data-dismiss="modal" style="display: none;"/>
    </label>

  </div>
</div>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接