146 votes

Comment vérifier si la modale bootstrap est ouverte, afin que je puisse utiliser la validation jquery?

J'ai besoin de faire une validation uniquement si une fenêtre modale est ouverte, car si je l'ouvre, puis je la ferme, et ensuite je clique sur le bouton qui ouvre la fenêtre modale, cela ne fonctionne pas car il effectue la validation jquery, mais ne l'affiche pas car la modale a été dismissée.

Donc je veux ajouter un jquery si la modale est ouverte alors je fais la validation, est-ce possible?

$(document).ready(function(){

var validator =$('#form1').validate(
 {
  ignore: "",
  rules: {

usu_login: {
  required: true
},
usu_password: {
  required: true
},
usu_email: {
  required: true
},
usu_nombre1: {
  required: true
},
usu_apellido1: {
  required: true
},
usu_fecha_nac: {
  required: true
},
usu_cedula: {
  required: true
},
usu_telefono1: {
  required: true
},
rol_id: {
  required: true
},
dependencia_id: {
  required: true
},
  },

  highlight: function(element) {
$(element).closest('.grupo').addClass('has-error');
        if($(".tab-content").find("div.tab-pane.active:has(div.has-error)").length == 0)
        {
            $(".tab-content").find("div.tab-pane:hidden:has(div.has-error)").each(function(index, tab)
            {
                var id = $(tab).attr("id");

                $('a[href="#' + id + '"]').tab('show');
            });
        }
  },
  unhighlight: function(element) {
$(element).closest('.grupo').removeClass('has-error');
  }
 });

}); // fin du document.ready

11voto

Bhavesh Lalwani Points 39

Vous pouvez également utiliser

$('#myModal').hasClass('show');

4voto

joanfihu Points 303
$("élément").data('bs.modal').isShown

ne fonctionnera pas si le modal n'a pas été affiché auparavant. Vous devrez ajouter une condition supplémentaire:

$("élément").data('bs.modal')

donc la réponse en tenant compte de la première apparition:

if ($("élément").data('bs.modal') && $("élément").data('bs.modal').isShown){
... 
}

2voto

Sokka Points 31

Pourquoi compliquer les choses quand cela peut être fait avec du simple jQuery comme suit.

$('#myModal').on('shown.bs.modal', function (e) {
    console.log('myModal est affiché');
    // Votre fonction réelle ici
})

1voto

Yuvraj Hinger Points 34

Démarche JavaScript pour vérifier l'état d'un modèle particulier par son ID.

modalstate = document.getElementById('modal-id').classList.contains('show')

Cela renverra true si le modal-id particulier est ouvert.

1voto

Noe Garcia Points 11

Cette indication code, lorsque le modal est ouvert (dans body), ou fermé (résultat faux)

var trueFalse = ($('body').hasClass('modal-open'));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X