我需要做一个验证只有当一个模态是开放的,因为如果我打开它,然后我关闭它,我按下按钮,打开模态它不工作,因为它正在进行jquery验证,但不是显示,因为模态被驳回。
所以我想广告一个jQuery如果模态是开放的,所以我做验证,这是可能吗?
<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
如Twitter Bootstrap Modal – IsShown中所讨论的。
当模态尚未打开时,.data(‘bs.modal’)返回undefined,因此|| {} – 这将使isShown的(falsy)值未定义。如果你进入严格,可以做($(“element”)。data(‘bs.modal’)|| {isShown:false})。isShown