如何使用jQuery打开Bootstrap模式窗口?

use*_*394 709 javascript jquery twitter-bootstrap

我正在使用Twitter Bootstrap模态窗口功能.当有人点击我的表单上的提交时,我想在单击表单中的"提交按钮"时显示模态窗口.

<form id="myform" class="form-wizard">
    <h2 class="form-wizard-heading">BootStap Wizard Form</h2>
    <input type="text" value=""/>
    <input type="submit"/>
</form>

<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="myModalLabel">Modal header</h3>
    </div>
    <div class="modal-body">
        <p>One fine body…</p>
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
        <button class="btn btn-primary">Save changes</button>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$('#myform').on('submit', function(ev) {
    $('#my-modal').modal({
        show: 'false'
    }); 


    var data = $(this).serializeObject();
    json_data = JSON.stringify(data);
    $("#results").text(json_data); 
    $(".modal-body").text(json_data); 

    // $("#results").text(data);

    ev.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

Cha*_*ase 1310

Bootstrap有一些可以在模态上手动调用的函数:

$('#myModal').modal('toggle');
$('#myModal').modal('show');
$('#myModal').modal('hide');
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到更多:Bootstrap模态组件

特别是方法部分.

所以你需要改变:

$('#my-modal').modal({
    show: 'false'
}); 
Run Code Online (Sandbox Code Playgroud)

至:

$('#myModal').modal('show'); 
Run Code Online (Sandbox Code Playgroud)

如果您想制作自己的自定义弹出窗口,请参阅其他社区成员的推荐视频:

https://www.youtube.com/watch?v=zK4nXa84Km4

  • [我在这里找到了anwser](https://teamtreehouse.com/forum/modal-window-disappering)到我上面的评论.链接到站点页面上的bootrap.js. (6认同)
  • 我不确定为什么这在我的情况下不起作用.我的页面中有相同的演示代码,我按上面的方式编写了提交按钮.但是,当我单击提交时,模态窗口会快速闪烁并消失.我必须单击浏览器的"后退"按钮才能返回页面. (5认同)
  • 我发现了我的问题,我对包含Jquery的文件做了一个ajax调用.如果包含jQuery 2次它不起作用! (4认同)
  • 我尝试了`.modal('show')`,但是在Google Chrome浏览器中却无法正常工作 (2认同)

Gan*_*rez 85

此外,您可以使用via data属性

<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,您不需要使用javascript.

你可以在这里看到更多:http://getbootstrap.com/2.3.2/javascript.html#modals

  • 澄清一下:“不需要使用javascript”意味着“不需要编写javascript”,javascript仍在使用。我试图编辑答案但它被拒绝了,因为它不是“更准确”。如果您在禁用 javascript 的情况下尝试上面的代码,它将不起作用。这意味着您确实对我使用了 javascript。 (10认同)

Pet*_*leg 74

大多数情况下,什么时候$('#myModal').modal('show');不起作用,这是因为包含了jQuery两次.包括jQuery 2次使模态不起作用.

删除其中一个链接以使其再次起作用.

此外,一些插件也会导致错误,在这种情况下添加

jQuery.noConflict(); 
$('#myModal').modal('show'); 
Run Code Online (Sandbox Code Playgroud)

  • 带有预先打包的jQuery版本的DataTables为我带来了这个 (3认同)
  • 非常感谢。我有同样的问题:模态不是函数。但是在添加 jQuery.noConflict() 后,它起作用了。 (3认同)

小智 19

<script type="text/javascript">
    $(function () {
        $("mybtn").click(function () {
            $("#my-modal").modal("show");
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)


Bra*_*ane 17

只需使用jQuery选择器调用模态方法(不传递任何参数).

这是一个例子:

$('#modal').modal();
Run Code Online (Sandbox Code Playgroud)


小智 12

如果使用链接的onclick函数通过jQuery调用模态,则"href"不能为null.

例如:

... ...
<a href="" onclick="openModal()">Open a Modal by jQuery</a>
... ...
... ...
<script type="text/javascript">

function openModal(){

    $('#myModal').modal();
}       
</script>
Run Code Online (Sandbox Code Playgroud)

莫代尔无法展示.正确的代码是:

<a href="#" onclick="openModal()">Open a Modal by jQuery</a>
Run Code Online (Sandbox Code Playgroud)


csa*_*as1 11

以下是文档准备就绪后如何加载引导程序警报.这很容易添加

 $(document).ready(function(){
   $("#myModal").modal();
});
Run Code Online (Sandbox Code Playgroud)

我在W3Schools上做了一个演示.

<!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.2.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>Here is how to load a bootstrap modal as soon as the document is ready </h2>
  <!-- Trigger the modal with a 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 class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>
  
</div>

<script>
$(document).ready(function(){
   $("#myModal").modal();
});
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)


小智 9

在这里查看完整的解决方案:

http://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_ref_js_modal_show&stacked=h

确保以所需顺序放置库以获得结果:

1-首先bootstrap.min.css 2- jquery.min.js 3- bootstrap.min.js

(换句话说,必须在bootstrap.min.js之前调用jquery.min.js)

    <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.1.1/jquery.min.js">
</script> 

 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
Run Code Online (Sandbox Code Playgroud)


the*_*ual 6

我尝试了几种失败的方法,但下面对我来说就像一个魅力:

$('#myModal').appendTo("body").modal('show');
Run Code Online (Sandbox Code Playgroud)

  • 相同!这也是唯一对我有用的解决方案。 (2认同)

Nik*_*kar 6

尝试

$("#myModal").modal("toggle")
Run Code Online (Sandbox Code Playgroud)

打开或关闭带有 id myModal 的模态。

如果上述内容不起作用,则意味着 bootstrap.js 已被其他一些 js 文件覆盖。这是一个解决方案

1:- 将 bootstrap.js 移到底部,以便覆盖其他 js 文件。

2:- 确保订单如下

<script src="plugins/jQuery/jquery-2.2.3.min.js"></script>
<!-- Other js files -->
<script src="plugins/jQuery/bootstrap.min.js"></script>
Run Code Online (Sandbox Code Playgroud)


Alp*_*zkn 5

<form id="myform" class="form-wizard">
    <h2 class="form-wizard-heading">BootStap Wizard Form</h2>
    <input type="text" value=""/>
    <input type="submit" id="submitButton"/>
</form>

<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="myModalLabel">Modal header</h3>
    </div>
    <div class="modal-body">
        <p>One fine body…</p>
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
        <button class="btn btn-primary">Save changes</button>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

您可以使用下面的代码启动模态。

$(document).ready(function(){
    $("#submitButton").click(function(){
        $("#myModal").modal();
    });
});
Run Code Online (Sandbox Code Playgroud)


I B*_*I B 5

尝试在调用函数时使用jQuery而不是$符号,这在我的情况下有效,如下所示。

jQuery.noConflict(); 
jQuery('#myModal').modal('show'); 
Run Code Online (Sandbox Code Playgroud)

jQuery.noConflict(); 因为当jQuery('#myModal')。modal('show'); 不起作用,这是由于两次包含jQuery引起的。包括jQuery 2次使模态不起作用。在这种情况下,它将解决问题,就像我的情况一样。

此外,您可以转到此链接

通过JQuery调用无法显示Bootstrap模型窗口