Muszę dokonać walidacji tylko wtedy, gdy modal jest otwarty, ponieważ jeśli go otworzę, a następnie zamknę, i naciśnę przycisk otwierający modal, nie działa, ponieważ przeprowadza walidację jQuery, ale nie pokazuje, ponieważ modal został odrzucony.
Więc chcę dodać jQuery, jeśli modal jest otwarty, więc sprawdzam, czy jest to możliwe?
<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>
jquery
validation
twitter-bootstrap
modal-dialog
Mariana Hernandez
źródło
źródło
_isShown
nie jestisShown
.Możesz użyć
Bootstrap dodaje
in
klasę, gdy modal jest otwarty i usuwa ją po zamknięciuźródło
shown.bs.modal
lubhidden.bs.modal
wydarzeń. W ten sposób, gdy kod zdarzenia przejmuje kontrolę, nie masz pewności, że okno dialogowe nie jest drażliwe.'in'
z'show'
na Bootstrap 4.Możesz również bezpośrednio użyć jQuery.
źródło
Sprawdź, czy modal jest otwarty
$('.modal:visible').length && $('body').hasClass('modal-open')
Aby dołączyć detektor zdarzeń
źródło
Bootstrap 2, 3 Check to jakikolwiek modal otwarty na stronie:
kompatybilna wersja Bootstrap 2, 3, 4+
Tylko Bootstrap 4+
źródło
4.1.3
ishow
zamiast tego dodaje klasęin
.nie zadziała, jeśli modal nie był wcześniej wyświetlany. Będziesz musiał dodać dodatkowy warunek:
czyli odpowiedź biorąc pod uwagę pierwsze pojawienie się:
źródło
Możesz także użyć
źródło
Na bootstrap-modal.js v2.2.0:
źródło
Po co komplikować rzeczy, skoro można to zrobić za pomocą prostego jQuery, takiego jak śledzenie.
źródło