Ich muss eine Validierung nur durchführen, wenn ein Modal geöffnet ist, denn wenn ich es öffne und dann schließe und den Knopf drücke, der das Modal öffnet, funktioniert es nicht, weil es die JQuery-Validierung durchführt, aber nicht zeigt, weil das Modal entlassen wurde.
Ich möchte also eine Abfrage hinzufügen, wenn Modal geöffnet ist, damit ich validiere. Ist dies möglich?
<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>
quelle
_isShown
nicht der FallisShown
.Sie können verwenden
Bootstrap fügt die
in
Klasse hinzu, wenn das Modal geöffnet ist, und entfernt sie, wenn es geschlossen istquelle
shown.bs.modal
oderhidden.bs.modal
Ereignisse zu abonnieren . Auf diese Weise sind Sie absolut sicher, dass sich der Dialog nicht in einem empfindlichen Zustand befindet, wenn Ihr Ereigniscode die Kontrolle erhält.'in'
mit'show'
für Bootstrap 4.Sie können jQuery auch direkt verwenden.
quelle
Überprüfen Sie, ob ein Modal geöffnet ist
$('.modal:visible').length && $('body').hasClass('modal-open')
So fügen Sie einen Ereignis-Listener hinzu
quelle
Bootstrap 2, 3 Überprüfen Sie , ob ein Modal auf der Seite geöffnet ist:
kompatible Version Bootstrap 2, 3, 4+
Nur Bootstrap 4+
quelle
4.1.3
und es fügtshow
Klasse stattin
.funktioniert nicht, wenn das Modal noch nicht angezeigt wurde. Sie müssen eine zusätzliche Bedingung hinzufügen:
so die Antwort unter Berücksichtigung des ersten Auftretens:
quelle
Sie können auch verwenden
quelle
Auf bootstrap-modal.js v2.2.0:
quelle
Warum Dinge komplizieren, wenn es mit einfacher jQuery wie folgt gemacht werden kann?
quelle