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

0voto

Ricardo Points 1414

Sur bootstrap-modal.js v2.2.0:

( $('élément').data('modal') || {}).isShown

0voto

Edoardo Vignati Points 21

Comme solution de contournement, j'utilise personnellement un drapeau global personnalisé pour déterminer si le modal a été ouvert ou non et je le réinitialise sur 'hidden.bs.modal'

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