Como abrir uma janela modal Bootstrap usando jQuery?
<form id="myform" class="form-wizard">
<h2 class="form-wizard-heading">BootStap Wizzard 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();
});
10 answers
O Bootstrap tem algumas funções que podem ser chamadas manualmente em modais:
$('#myModal').modal('toggle');
$('#myModal').modal('show');
$('#myModal').modal('hide');
Pode ver mais aqui: componente modal de Bootstrap
Especificamente a secção dos métodos .
Então você teria que mudar:
$('#my-modal').modal({
show: 'false'
});
To:
$('#myModal').modal('show');
Se você está olhando para fazer um popup personalizado de seu próprio, aqui está um vídeo sugerido de outro membro da comunidade:
Além disso, pode utilizar através do atributo data
<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>
Neste caso em particular, você não precisa usar javascript.
Podes ver mais aqui: http://getbootstrap.com/2.3.2/javascript.html#modals
$('#myModal').modal('show');
não funciona, é causado por ter incluído jQuery duas vezes. Incluindo jQuery 2 vezes faz modals não trabalhar.
Remova um dos links para que funcione novamente.
Além disso, alguns plugins também causam erros, neste caso adicione
jQuery.noConflict();
$('#myModal').modal('show');
Basta chamar o método modal (sem passar quaisquer parâmetros) usando jQuery
selector.
Aqui está o exemplo:
$('#modal').modal();
Se usares a função onclick do link para chamar um modal por jQuery, o "href" não pode ser nulo.
Por exemplo:
... ...
<a href="" onclick="openModal()">Open a Modal by jQuery</a>
... ...
... ...
<script type="text/javascript">
function openModal(){
$('#myModal').modal();
}
</script>
O Modal não pode aparecer.
O código certo é:
<a href="#" onclick="openModal()">Open a Modal by jQuery</a>
Veja aqui a solução completa:
Http://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_ref_js_modal_show&stacked=h
Certifique-se de colocar as bibliotecas necessárias para obter o resultado:
Primeiro bootstrap.minuto.css 2-jquery.minuto.js 3-bootstrap.minuto.js
(por outras palavras jquery.minuto.o js tem de ser chamado antes do bootstrap.minuto.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>
Aqui está como carregar o alerta de inicialização assim que o documento estiver pronto. É muito fácil apenas adicionar
$(document).ready(function(){
$("#myModal").modal();
});
Fiz uma demonstração em 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">×</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>
$('#myModal').appendTo("body").modal('show');
Tenta
$("#myModal").modal("toggle")
Abrir ou fechar o modal Com id myModal.
Se o acima não está a funcionar então significa 'bootstrap'.o js foi substituído por outro ficheiro do js. Aqui está uma solução
- Mover bootstrap.js até ao fundo para que possa sobrepor-se a outros ficheiros js.2: - Certifique-se que a ordem está abaixo
<script src="plugins/jQuery/jquery-2.2.3.min.js"></script>
<!-- Other js files -->
<script src="plugins/jQuery/bootstrap.min.js"></script>
<form id="myform" class="form-wizard">
<h2 class="form-wizard-heading">BootStap Wizzard 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>
Você pode lançar o modal Com o código abaixo disto.
$(document).ready(function(){
$("#submitButton").click(function(){
$("#myModal").modal();
});
});