J'ai souffert un problème similaire: dans ma fenêtre modale, j'ai deux boutons "Annuler" et "OK". À l'origine, les deux boutons de fermer la fenêtre modale en invoquant $('#myModal').modal('hide')
(avec "OK" auparavant, l'exécution du code) et le scénario serait le suivant:
- Ouvrez la fenêtre modale
- Faire certaines opérations, puis cliquez sur "OK" faire valider et fermer la modale
- Ouvrez le modal de nouveau et de rejeter en cliquant sur "Annuler"
- Ré-ouvrir le modal, cliquez de nouveau sur "Annuler" ==> la toile de fond n'est plus accessible!
bien, mon compagnon de bureau voisin a sauvé ma journée: au lieu d'invoquer $('#myModal').modal('hide')
, donner à vos boutons de l'attribut data-dismiss="modal"
et ajouter un événement "click" à votre bouton "Soumettre". Dans mon problème, le HTML (bien, TWIG) code pour le bouton:
<button id="modal-btn-ok" class="btn" data-dismiss="modal">OK</button>
<button id="modal-btn-cancel" class="btn" data-dismiss="modal">Cancel</button>
et dans mon code JavaScript, j'ai:
$("#modal-btn-ok").one("click", null, null, function(){
// My stuff to be done
});
alors qu'aucun événement "click" est attribuée à la touche "Annuler". Le modal se ferme correctement et me permet de jouer de nouveau avec le "normal" de la page. Il semble en fait que l' data-dismiss="modal"
devrait être le seul moyen d'indiquer qu'un bouton (ou quel que soit l'élément DOM) devrait fermer un Bootstrap modal. L' .modal('hide')
méthode semble se comportent pas tout à fait contrôlable.
Espérons que cette aide!