Bootstrap 引导模态-单击“call to action”(行动号召)按钮时关闭模态

k97glaaz  于 2022-12-07  发布在  Bootstrap
关注(0)|答案(5)|浏览(208)

我的modal中有一个外部链接,我希望用户点击链接后modal隐藏起来。我该怎么做呢?
下面是我的代码:

<div class="modal hide fade" id="modalwindow">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
    <h3>Title</h3>
  </div>
  <div class="modal-body">
    <p>You need to do a search on google.com for that.</p>
  </div>
  <div class="modal-footer">
    <a id="closemodal" href="https://www.google.com" class="btn btn-primary" target="_blank">Launch google.com</a>
  </div>
</div>

<script type="text/javascript">
    $('#closemodal').modal('hide');
</script>
e5nszbig

e5nszbig1#

您需要将模式隐藏调用绑定到onclick事件。
假设您使用的是jQuery,您可以使用以下代码来实现:

$('#closemodal').click(function() {
    $('#modalwindow').modal('hide');
});

还要确保在文档完成加载后绑定click事件:

$(function() {
   // Place the above code inside this block
});
enter code here
tag5nh1u

tag5nh1u2#

删除脚本,并更改HTML:

<a id="closemodal" href="https://www.google.com" class="btn btn-primary close" data-dismiss="modal" target="_blank">Launch google.com</a>

编辑:请注意,目前这将无法工作,因为此功能还不存在于bootstrap. See issue here中。

wnvonmuf

wnvonmuf3#

使用data-dismiss="modal"。在Bootstrap版本中,我使用的是v3.3.5,当data-dismiss="modal"被添加到所需的按钮时,如下图所示,它会调用我的外部Javascript(JQuery)函数,并神奇地关闭模态。它太棒了,我担心我必须调用另一个函数中的一些模态隐藏,并将其链接到真实的的工作函数

<a href="#" id="btnReleaseAll" class="btn btn-primary btn-default btn-small margin-right pull-right" data-dismiss="modal">Yes</a>

在一些外部脚本文件中,以及在我的docready中,当然有一个用于单击标识符ID的函数

$("#divExamListHeader").on('click', '#btnReleaseAll', function () {
               // Do DatabaseMagic Here for a call a MVC ActionResult
cig3rfwq

cig3rfwq4#

如图所示制作。

$(document).ready(function(){
    $('#myModal').modal('show');

    $('#myBtn').on('click', function(){
      $('#myModal').modal('show');
    });
    
  });
<br/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Activate Modal with JavaScript</h2>
  <!-- Trigger the modal with a button -->
  <button type="button" class="btn btn-info btn-lg" id="myBtn">Open Modal</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>

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

wgx48brx5#

我试着关闭一个加载了bootstrap CSS的模态窗口。close()方法并没有真正关闭模态窗口。所以我将显示样式添加为“none”。

function closeDialog() {
        let d = document.getElementById('d')
        d.style.display = "none"
        d.close()
    }

HTML代码在对话框窗口中包含一个按钮。

<input type="submit" value="Confirm" onclick="closeDialog()"/>

编辑:将#closemodal替换为#modalwindow

<script type="text/javascript">
    $('#closemodal').click(function(e) {
       $('#modalwindow').modal('hide');
    }
</script>

相关问题