2016-07-21 12 views
2

Ich habe ein Bootstrap-Modal, in dem ich ein Formular habe. Das Senden dieses Formulars dauert einige Sekunden. Wenn ein Benutzer auf die Außenseite klickt oder esc drückt, wird Modal geschlossen. Ich möchte dies deaktivieren, wenn die Einreichung:Das schließende Bootstrap-Modal dynamisch deaktivieren, wenn in jQuery esc oder extern gedrückt wird

$("#submit-btn").on("click", function(){ 
    // disable esc and outside 

    submit() 
}) 

Aber ich mag den Benutzer ermöglichen esc zu drücken, um das Fenster zu schließen, wenn er noch nicht abgegeben hat. Deshalb kann ich nicht auf meinem modalen Öffnungsknopf verwenden:

data-backdrop="static" data-keyboard="false" 

ich das versucht:

$("#submit-btn").on("click", function(){ 
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static'; 
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard = false; 

    submit() 
}) 

Haben Sie nicht helfen.

Wie kann ich das tun?

Antwort

1
$("#submit-btn").on("click", function(){ 
    $('#myModal').data('bs.modal').options.keyboard = false; 
    $('#myModal').data('bs.modal').options.backdrop = 'static'; 
    submit(); 
}); 
+0

Ich habe diesen Fehler: 'Uncaught Typeerror: Sie können entkommen keypress und klicken Sie außerhalb des modal mit folgenden Skript vermeiden kann nicht Eigenschaft‚Optionen‘von undefined' –

+0

@JahongirRahmonov Welche Version von Bootstrap lesen verwenden Sie? Und nur um zu bestätigen, setzen Sie Ihre 'modal' div's ID anstelle von '# myModal'? –

+0

Ich benutze Bootstrap v3.2! und ja! Ich habe das getan: '$ ('# split-location-modal')' um genau zu sein –

0

Twitter Bootstrap modal.js selbst hat Tastatur wahr oder falsch Boolean.

$(function() { 
     $('.modal').modal({ 
      show: true, 
      keyboard: false, 
      backdrop: 'static' 
     }); 
    }); 
+0

ja, aber es deaktiviert das Schließen von 'esc' die ganze Zeit. nicht erst nach dem "Einreichen" –