如何检查引导模式是否打开,所以我可以使用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