如何检查引导模式是否打开,所以我可以使用jqueryvalidation

我需要做一个validation,只有当一个模式是开放的,因为如果我打开它,然后我closures它,我按下button,打开模式它不工作,因为它使jQueryvalidation,但不显示,因为模式被解雇。

所以我想广告一个jQuery的,如果模态是开放的,所以我做validation,这可能吗?

<script> $(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'); } }); }); // end document.ready </script> 

为了避免@GregPettit提到的竞争条件,可以使用:

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

如Twitter Bootstrap Modal – IsShown中所述 。

当模式尚未打开时, .data('bs.modal')返回undefined ,因此|| {} || {} – 这将使得(falsy)值undefined 。 如果你严格的话可以做($("element").data('bs.modal') || {isShown: false}).isShown

您可以使用

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

Bootstrap在模式打开时添加in类,并在closures时删除它

你也可以直接使用jQuery。

 $('#myModal').is(':visible'); 
 $("element").data('bs.modal').isShown 

如果之前没有显示过模式,则不起作用。 您将需要添加一个额外的条件:

 $("element").data('bs.modal') 

所以考虑到第一次出现的答案:

 if ($("element").data('bs.modal') && $("element").data('bs.modal').isShown){ ... } 

在bootstrap-modal.js v2.2.0上:

 ( $('element').data('modal') || {}).isShown