Bootstrap 5 (beta) - mise à jour 2021
La valeur par défaut de z-index des modales a changé pour 1060. Par conséquent, pour remplacer les modales et le fond, utilisez..
.modal:nth-of-type(even) {
z-index: 1062 !important;
}
.modal-backdrop.show:nth-of-type(even) {
z-index: 1061 !important;
}
Bootstrap 5 modales multiples
Bootstrap 4 - mise à jour 2019
J'ai trouvé que la plupart des réponses semblaient contenir beaucoup de code jQuery inutile. Ouvrir une modale depuis une autre modale peut être facilement fait en utilisant les événements que Bootstrap fournit tels que show.bs.modal
. Vous pourriez également avoir besoin de quelques CSS pour gérer les superpositions de fenêtres contextuelles. Voici 3 scénarios de "modales multiples"...
Ouvrir une modale depuis une autre modale (garder la 1ère modale ouverte)
Ouvrir la modale
Titre de la modale
×
...
Ouvrir la modale 2
Fermer
Titre de la 2ème modale
×
..
Fermer
Enregistrer les modifications
Un problème potentiel dans ce cas est que le fond de la 2ème modale cache la 1ère modale. Pour éviter cela, définissez le data-backdrop="static"
pour la 2ème modale, et ajoutez quelques CSS pour ajuster les z-index des fonds...
/* correction du fond de la modale */
.modal:nth-of-type(even) {
z-index: 1052 !important;
}
.modal-backdrop.show:nth-of-type(even) {
z-index: 1051 !important;
}
https://codeply.com/go/NiFzSCukVl
Ouvrir une modale depuis une autre modale (fermer la 1ère modale)
Ceci est similaire au scénario précédent, mais puisque nous fermons la 1ère modale lorsque la 2ème est ouverte, il n'y a pas besoin de correction CSS pour le fond. Une fonction simple qui gère l'événement show.bs.modal
de la 2ème modale ferme la 1ère modale.
$("#myModal2").on('show.bs.modal', function (e) {
$("#myModal1").modal("hide");
});
https://codeply.com/go/ejaUJ4YANz
Ouvrir une modale à l'intérieur d'une autre modale
Le dernier scénario de modales multiples consiste à ouvrir la 2ème modale à l'intérieur de la 1ère modale. Dans ce cas, le balisage de la 2ème est placé à l'intérieur de la 1ère. Aucun CSS ou jQuery supplémentaire n'est nécessaire.
Titre de la modale
×
...
Ouvrir la modale 2
Fermer
Titre de la 2ème modale
×
...
Fermer
Enregistrer les modifications
https://codeply.com/go/iSbjqubiyn