2016-12-26 101 views
1

我正在开启模态时启动模态,它有两个按钮一个用于打印模态内容,第二个用于关闭模态。Bootstrap模式关闭按钮问题

在aspx页面的模式代码:

<div class="modal fade" id="myModal" role="dialog"> 
    <div class="modal-dialog modal-lg"> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title">PD checks details</h4> 
     </div> 
     <div id="printArea" class="modal-body"> 
      <asp:Repeater ID="rptPDC" runat="server"> 
       <HeaderTemplate> 
        <table class="table table-bordered table-condensed table-hover table-responsive table-striped"> 
         <tr> 
          <th>IDVC</th> 
          <th>Check Number</th> 
          <th>Check Date</th> 
          <th>AMTRMITHC</th> 
         </tr> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <tr> 
         <td><%#Eval("idvc") %> </td> 
         <td><%#Eval("checkNo") %> </td> 
         <td><%#Eval("checkDa") %> </td> 
         <td><%#Eval("art") %> </td> 
        </tr> 


       </ItemTemplate> 
       <FooterTemplate> 

        </table> 
       </FooterTemplate> 

      </asp:Repeater> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" onclick="PrintElem('printArea')">Print</button> 
<button type="button" id="closemodal" class="btn btn-default" data-dismiss="modal">Close</button> 

     </div> 
     </div> 
    </div> 
    </div> 

的问题是,当用户点击打印按钮每一件事情是确定的和模态内容将被打印出来,但是当关闭按钮,用户点击关闭模式打印完内容后什么都没有发生,模式没有关闭?

我试着用下面的JavaScript代码来隐藏模态:

$("#closemodal").click(function() { 
      $("#myModal").modal("hide"); 
     }); 

也没什么同样的问题依然?

+0

检查开发控制台,数据解雇应该有工作 – Deep

+0

在控制台中没有错误,它隐藏模式元素,但背景覆盖元素仍然存在,当使用JavaScript来隐藏模式 –

回答

0

你不需要绑定事件显式关闭。它本身内置于引导程序中。仔细看看示例代码在http://getbootstrap.com/javascript/#modals

+0

是的,我知道,但在我的情况下,当我点击外部模式或关闭按钮什么都没有发生! –

+0

你得到了什么错误? – Garfield

+0

没有错误,但它隐藏了模式,但当使用JavaScript代码隐藏它时,背景叠加元素仍然存在 –

0

它与你的代码工作

<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal"> 
      Launch demo modal 
     </button> 

<div class="modal fade" id="myModal" role="dialog"> 
    <div class="modal-dialog modal-lg"> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title">PD checks details</h4> 
     </div> 
     <div id="printArea" class="modal-body"> 
      <asp:Repeater ID="rptPDC" runat="server"> 
       <HeaderTemplate> 
        <table class="table table-bordered table-condensed table-hover table-responsive table-striped"> 
         <tr> 
          <th>IDVC</th> 
          <th>Check Number</th> 
          <th>Check Date</th> 
          <th>AMTRMITHC</th> 
         </tr> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <tr> 
         <td><%#Eval("idvc") %> </td> 
         <td><%#Eval("checkNo") %> </td> 
         <td><%#Eval("checkDa") %> </td> 
         <td><%#Eval("art") %> </td> 
        </tr> 


       </ItemTemplate> 
       <FooterTemplate> 

        </table> 
       </FooterTemplate> 

      </asp:Repeater> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" onclick="PrintElem('printArea')">Print</button> 
<button type="button" id="closemodal" class="btn btn-default" data-dismiss="modal">Close</button> 

     </div> 
     </div> 

https://jsfiddle.net/m1tL84gw/

+0

在我身边当打印选项对话框出现时,我单击取消或打印,然后我尝试点击关闭按钮上的模式它doesn没有工作 –

0

引导找到与属性数据驳回=“莫代尔”和触发点击它,元素关闭模式对话框

<button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
0

尝试获取console.log('test')当哟你打开模式关闭按钮,如果你得到它,那么你可以触发模式关闭按钮。例如:$("#closemodal").click(function() { console.log('MOdal CLose Layer'); setTimeout(function(){$("#myModal").modal("hide");},1000); });

0

你甚至可以检查这个Demohttp://jsfiddle.net/h3WDq/。模态的关闭由bootstrap处理。或者再仔细检查一下你的PrintElem('printArea')函数的代码。函数内部的某些东西可能会打破模态的紧密功能。

更新:使用下面的脚本进行打印,也将努力:

<script> 
    function PrintElem(elem) { 
    var toPrint; 
    toPrint=window.open(); 
    toPrint.document.write(document.getElementById(elem).innerHTML); 
    toPrint.print(); 
    toPrint.close(); 
    } 
</script> 
+0

printElem函数有什么问题,我刚才检查了一下: 'function PrintElem(elem){var printContents = document.getElementById(elem).innerHTML; var originalContents = document.body.innerHTML; document.body.innerHTML = printContents; window.print(); document.body.innerHTML = originalContents; } ' –

+0

Hi @faresAyyad,printElem函数有问题。问题是用“document.body”行。innerHTML = originalContents;“要检查它写在脚本的下面,你就会知道问题的原因:function PrintElem(elem)var originalContents = $(”html“)。html(); document.body.innerHTML = originalContents; }在这里,即使将相同的html文本分配给身体,它也会使得关闭或者十字图标不可点击。 – Namita

+0

要解决此问题,请检查我的答案中的更新 – Namita