Como abrir uma janela modal Bootstrap usando jQuery?

Estou a usar a funcionalidade de janela modal do Twitter Bootstrap. Quando alguém clica em Enviar no meu formulário, eu quero mostrar a janela modal ao clicar no "botão enviar" no formulário.

<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();
});
Author: Talha Awan, 2012-11-01

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:

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

 1040
Author: Chase, 2016-08-11 03:27:41

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

 68
Author: Gandarez, 2016-05-25 12:30:04
Na maioria das vezes, quando $('#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'); 
 53
Author: Peter verleg, 2017-08-12 00:06:50

Basta chamar o método modal (sem passar quaisquer parâmetros) usando jQuery selector.

Aqui está o exemplo:

$('#modal').modal();
 13
Author: raBne, 2016-02-06 19:21:24

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>
 9
Author: saneryee, 2016-04-18 06:42:04

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>
 8
Author: A.Aleem11, 2017-01-14 21:16:43

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">&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>
 6
Author: csandreas1, 2017-08-26 14:05:10
Tentei vários métodos que falharam, mas o abaixo funcionou para mim como um encanto.
$('#myModal').appendTo("body").modal('show');
 5
Author: novembersky, 2017-06-08 03:33:40

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>
 2
Author: Nikhil Mohadikar, 2017-11-07 11:55:26
<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();
    });
});
 1
Author: Alperzkn, 2017-10-12 10:44:15