J'utilise Twitter Bootstrap fonctionnalité de la fenêtre modale. Lorsque quelqu'un clique sur Soumettre sur mon formulaire, je souhaite afficher la fenêtre modale en cliquant sur le bouton "Soumettre" du formulaire.
<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();
});
Bootstrap a quelques fonctions qui peuvent être appelées manuellement sur les modaux:
$('#myModal').modal('toggle');
$('#myModal').modal('show');
$('#myModal').modal('hide');
Vous pouvez en voir plus ici: composant modal Bootstrap
Plus précisément, le section methods .
Donc, vous auriez besoin de changer:
$('#my-modal').modal({
show: 'false'
});
à:
$('#myModal').modal('show');
Si vous souhaitez créer votre propre popup personnalisé, voici une suggestion de vidéo d'un autre membre de la communauté:
En outre, vous pouvez utiliser via l'attribut de données
<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>
Dans ce cas particulier, vous n'avez pas besoin d'écrire en javascript.
Vous pouvez en voir plus ici: http://getbootstrap.com/2.3.2/javascript.html#modals
Le plus souvent, lorsque $('#myModal').modal('show');
ne fonctionne pas, cela est dû à l'inclusion de jQuery à deux reprises. Si jQuery est inclus 2 fois, les modaux ne fonctionnent pas.
Supprimez l'un des liens pour le faire fonctionner à nouveau.
De plus, certains plugins causent aussi des erreurs, dans ce cas ajoutez
jQuery.noConflict();
$('#myModal').modal('show');
Appelez simplement la méthode modale (sans passer aucun paramètre) en utilisant le sélecteur jQuery
.
Voici un exemple:
$('#modal').modal();
Si vous utilisez la fonction onclick de links pour appeler un modal par jQuery, le "href" ne peut pas être null.
Par exemple:
... ...
<a href="" onclick="openModal()">Open a Modal by jQuery</a>
... ...
... ...
<script type="text/javascript">
function openModal(){
$('#myModal').modal();
}
</script>
Le modal ne peut pas montrer. Le bon code est:
<a href="#" onclick="openModal()">Open a Modal by jQuery</a>
Voici comment charger bootstrap alert dès que le document est prêt. Il est très facile d'ajouter
$(document).ready(function(){
$("#myModal").modal();
});
J'ai fait un démo sur 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>
Découvrez la solution complète ici:
http://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_ref_js_modal_show&stacked=h
Assurez-vous de mettre les bibliothèques dans l'ordre requis pour obtenir le résultat:
1- Premier bootstrap.min.css 2- jquery.min.js 3- bootstrap.min.js
(En d'autres termes, jquery.min.js doit être appelé avant 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>
J'ai essayé plusieurs méthodes qui ont échoué, mais ci-dessous a fonctionné pour moi comme un charme:
$('#myModal').appendTo("body").modal('show');
Essayez d’utiliser jQuery au lieu du signe $ lors de l’appel de la fonction. travaillé dans mon cas comme vous pouvez le voir ci-dessous.
jQuery.noConflict();
jQuery('#myModal').modal('show');
jQuery.noConflict (); car quand jQuery ('# myModal'). modal ('show'); ne fonctionne pas, c'est parce que jQuery a été inclus deux fois. Si jQuery est inclus 2 fois, les modaux ne fonctionnent pas. et cela résoudrait le problème dans ce cas, comme dans mon cas, cela se répète.
De plus, vous pouvez aller à ce lien
La fenêtre du modèle Bootstrap ne s'affiche pas en appelant via JQuery
Essayer
$("#myModal").modal("toggle")
Pour ouvrir ou fermer le modal avec id myModal.
Si ce qui précède ne fonctionne pas, cela signifie que bootstrap.js a été remplacé par un autre fichier js. Voici une solution
1: - Déplacez bootstrap.js vers le bas pour qu’il remplace les autres fichiers js.
2: - Assurez-vous que la commande est comme ci-dessous
<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 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>
Vous pouvez lancer le modal avec le code ci-dessous.
$(document).ready(function(){
$("#submitButton").click(function(){
$("#myModal").modal();
});
});
myModal1 est l'id de modal
$ ('# myModal1'). modal ({show: true});