如何使用jQuery打开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>

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();});
2277769 次浏览

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

$('#myModal').modal('toggle');$('#myModal').modal('show');$('#myModal').modal('hide');

你可以在这里看到更多:Bootstrap模态分量

特别是方法部分

所以你需要改变:

$('#my-modal').modal({show: 'false'});

到:

$('#myModal').modal('show');

如果您想制作自己的自定义弹出窗口,这里有一个来自另一个社区成员的建议视频:

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

此外,您可以使用via数据属性

<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>

在这种情况下,您不需要编写javascript。

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

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

删除其中一个链接以使其再次工作。

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

jQuery.noConflict();$('#myModal').modal('show');

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

下面是例子:

$('#modal').modal();

如果您使用链接的onClick函数通过jQuery调用模态,则“href”不能为空。

例如:

... ...<a href="" onclick="openModal()">Open a Modal by jQuery</a>... ...... ...<script type="text/javascript">
function openModal(){
$('#myModal').modal();}</script>

模态无法显示。正确的代码是:

<a href="#" onclick="openModal()">Open a Modal by jQuery</a>

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

http://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_ref_js_modal_show&;堆叠的=h

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

1-第一bootstrap.min.css2-jquery.min.js3-bootstrap.min.js

(jquery.min.js必须在bootstrap.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>

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

$('#myModal').appendTo("body").modal('show');

以下是如何在文档准备就绪后立即加载引导警报。只需添加即可

 $(document).ready(function(){$("#myModal").modal();});

我在W3学校上做了一个demo

<!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>

<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>

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

$(document).ready(function(){$("#submitButton").click(function(){$("#myModal").modal();});});

试试看

$("#myModal").modal("toggle")

使用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>

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

jQuery.noConflict();jQuery('#myModal').modal('show');

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

你可以去这个链接

通过JQuery调用引导模型窗口不显示

试试这个

myModal1是模态的id

$('#myModal1').modal({ show: true });
<script type="text/javascript">$(function () {$("mybtn").click(function () {$("#my-modal").modal("show");});});</script>

Bootstrap 4.3-更多这里

$('#exampleModal').modal();
<!-- Initialize Bootstrap 4 -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"><script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

<!-- MODAL -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content">    
<div class="modal-body">Hello world</div>      
<div class="modal-footer"><button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button></div>
</div></div></div>

试试这个。对我很有效。

function clicked(item) {alert($(item).attr("id"));}
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-rtl/3.4.0/css/bootstrap-rtl.css" rel="stylesheet"/><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<button onclick="clicked(this);" id="modalME">Click me</button>
<!-- Modal --><div class="modal" id="modalME" aria-hidden="true"><div class="modal-dialog"><div class="modal-header"><h2>Modal in CSS</h2><a href="#close" class="btn-close" aria-hidden="true">×</a> <!--CHANGED TO "#close"--></div><div class="modal-body"><p>One modal example here.</p></div><div class="modal-footer"><a href="#close" class="btn">Nice!</a>  <!--CHANGED TO "#close"--></div></div></div></div><!-- /Modal -->