it-swarm.com.de

Schließe bootstrap modal ohne "hide" und "data-dismiss"

Ich möchte bootstrap modal box bedingt schließen. Wenn ich $('#modal').modal('hide'); benutze, geht etwas mit meinem Code schief. Und wenn ich data-dismiss="modal" In der HTML-Vorlage, die modale Entlassungsaktion wird ausgeführt, bevor meine eigentliche Funktionalität beim Klicken auf eine Schaltfläche ausgeführt werden soll.

Gibt es also eine andere Möglichkeit, bootstrap modal oder eine Idee, data-dismiss="modal" Zur Laufzeit zu verwenden?

14
Ruchi Agarwal

Sie können dies mit dem automatischen modalen Schließverhalten tun, das das Attribut data-dismiss Selbst verwendet, oder mit dem manuellen modalen Öffnen (wie derzeit angenommen), indem Sie das Ereignis hide abonnieren und für das Ereignis preventDefault verwenden.

$('yourmodalselector').on('hide',function(e){
   if(yourConditionNotToCloseMet){
      e.preventDefault();
   }
});

Demo

Demo2

Siehe Dokumentation

hide event event wird sofort ausgelöst, wenn die Methode hide instance aufgerufen wurde. Diese Methode wird auf verwelkte Weise aufgerufen, und dies ist der beste Ort, um das Schließen des Modals zu verhindern.

14
PSL

Machen Sie einen anderen Knopf wie diesen

<button type="button" class="btn btn-warning btn-lg shiny" data-dismiss="modal" aria-hidden="true">Cancel</button>

Diese Schaltfläche enthält data-dismiss="modal". Sie können dies ausblenden, wenn Sie möchten.

Jetzt können Sie jede andere Funktion auf individuelle Weise verwenden und wenn Sie das Modal verbergen möchten, können Sie es aufrufen

$(".btn-warning").click();
3
Bugfixer