javascript form Puis-je vérifier si Bootstrap Modal montré/caché?




modal bootstrap 4 (7)

Puis-je vérifier si Bootstrap Modal est actuellement affiché / caché par programme?

Comme bool a = if("#myModal").shown(); ?

J'ai besoin de vrai / faux


Utilisez hasClass('in') . Il retournera vrai si modal est en état OPEN .

Par exemple:

if($('.modal').hasClass('in')){
   //Do something here
}

La meilleure méthode est donnée dans les docs

$('#myModal').on('shown.bs.modal', function () {
  // will only come inside after the modal is shown
});

Pour plus d'informations, consultez http://getbootstrap.com/javascript/#modals


De manière officielle:

> ($("element").data('bs.modal') || {})._isShown    // Bootstrap 4
> ($("element").data('bs.modal') || {}).isShown     // Bootstrap <= 3

{} est utilisé pour éviter le cas où modal n'est pas encore ouvert (il renvoie undefined ). Vous pouvez également l'affecter égal {isShown: false} pour garder son sens.


Lorsque cacher modal? nous vérifions comme ceci:

$('.yourmodal').on('hidden.bs.modal', function () {
    // do something here
})

alert($('#myModal').hasClass('in'));

Il retournera vrai si modal est ouvert


Pour moi cela fonctionne

if($("#myModal").css("display")=='block') alert("modal shown");


C'est une vieille question mais de toute façon heres quelque chose que j'ai utilisé au cas où quelqu'un chercherait la même chose

if (!$('#myModal').is(':visible')) {
    // if modal is not shown/visible then do something
}




bootstrap-modal