ventana sirve que para modal hacer fuera desde data clic cerrar boton bootstrap bloquear abrir javascript css twitter-bootstrap modal-dialog

javascript - sirve - Deshabilitar el clic fuera del área modal de arranque para cerrar modal



modal bootstrap 4 (12)

Agregue el css a continuación como desea que el ancho de su pantalla.

@media (min-width: 991px){ .modal-dialog { margin: 0px 179px !important; } }

Estoy haciendo un sitio web de bootstrap, con un par de ''Modals'' de Bootstrap. Estoy tratando de personalizar algunas de las características predeterminadas.

El problema es este; Puedes cerrar el modal haciendo clic en el fondo. ¿Hay alguna forma de deshabilitar esta característica? ¿Sólo en modales específicos?

Página modal de bootstrap


En mi aplicación, estoy usando el siguiente código para mostrar el modo Bootstrap a través de jQuery.

$(''#myModall'').modal({ backdrop: ''static'', keyboard: true, show: true });


Este es el más fácil.

Puede definir su comportamiento modal, definiendo el teclado de datos y el fondo de datos.

<div id="modal" class="modal hide fade in" data-keyboard="false" data-backdrop="static">


Hay dos formas de deshabilitar el clic fuera del área del modelo bootstrap para cerrar modal

  1. usando javascript

    $(''#myModal'').modal({ backdrop: ''static'', keyboard: false });

  2. usando el atributo de datos en la etiqueta HTML

    data-backdrop="static" data-keyboard="false" //write this attributes in that button where you click to open the modal popup.


La solución que me funciona es la siguiente:

$(''#myModal'').modal({backdrop: ''static'', keyboard: false})

Fondo: desactivado el clic fuera del evento

teclado: deshabilitado el evento de palabra clave scape


Mira esto ::

$(document).ready(function() { $("#popup").modal({ show: false, backdrop: ''static'' }); $("#click-me").click(function() { $("#popup").modal("show"); }); });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/css/bootstrap.css" rel="stylesheet"/> <script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.1.0/css/bootstrap-combined.min.css" rel="stylesheet"> </head> <body> <div class="modal" id="popup" style="display: none;"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3>Standard Selectpickers</h3> </div> <div class="modal-body"> <select class="selectpicker" data-container="body"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select> </div> <div class="modal-footer"> <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button> <button class="btn btn-primary">Save changes</button> </div> </div> <a id="click-me" class="btn btn-primary">Click Me</a> </body> <script type="text/javascript" src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.1.0/js/bootstrap.min.js"></script> </html>


Otra opción si no sabe si el modal ya se abrió o no y necesita configurar las opciones modales:

var $modal = $(''#modal''); var keyboard = false; // Prevent to close by ESC var backdrop = ''static''; // Prevent to close on click outside the modal if(typeof $modal.data(''bs.modal'') === ''undefined'') { // Modal did not open yet $modal.modal({ keyboard: keyboard, backdrop: backdrop }); } else { // Modal has already been opened $modal.data(''bs.modal'').options.keyboard = keyboard; $modal.data(''bs.modal'').options.backdrop = backdrop; if(keyboard === false) { $modal.off(''keydown.dismiss.bs.modal''); // Disable ESC } else { // $modal.data(''bs.modal'').escape(); // Resets ESC } }


Para mí hubo una confusión entre bootstrap modal y jQuery modal. Esto hizo el truco (para jQuery modal )

$("#sticky").modal({ escapeClose: false, clickClose: false, showClose: false });



Puedes usar

$.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = ''static''; $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard = false;

para cambiar el comportamiento por defecto.


También puedes hacer esto sin usar JQuery, así:

<div id="myModal"> var modal = document.getElementById(''myModal''); modal.backdrop = "static"; modal.keyboard = false;


En el capítulo Opciones, en la página que vinculó, puede ver la opción de backdrop . Pasar esta opción con un valor ''static'' evitará que se cierre el modal.
Como @PedroVagner señaló los comentarios, también puede pasar {keyboard: false} para evitar que se cierre el modal presionando Esc .

Si abres el modal por js usa:

$(''#myModal'').modal({backdrop: ''static'', keyboard: false})

Si está utilizando atributos de datos, use:

<button data-target="#myModal" data-toggle="modal" data-backdrop="static" data-keyboard="false"> Launch demo modal </button>`