prevent bootstrap modal close on click outside
15,239
Use modal js property keyboard
true or false. In your code there is no class .modal-content
.modal-body
.
$(function() {
$('#uploadedImagePopup').modal({
show: true,
keyboard: false,
backdrop: 'static'
});
});
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="modal fade modal-popup confirm-uploaded-image-popup" id="uploadedImagePopup" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-content modal-dialog modal-popup-content" role="document">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<div class="confirm-uploaded-image-popup-img"></div>
<div class="modal-popup-desc">You have uploaded a picture. Are you sure you want to add it to your gallery?</div>
</div>
<div class="modal-footer">
<button data-dismiss="modal" class="btn btn-very-light-gray confirm-uploaded-image-popup-cancel">Cancel</button>
<button class="btn btn-green confirm-uploaded-image-popup-ok">OK</button>
</div>
<div>
</div>
</div>
</div>
</div>
</body>
</html>
Author by
Admin
Updated on June 04, 2022Comments
-
Admin almost 2 years
I want to prevent closing bootstrap modal if user clicks outside modal or press ESC. I know this question was asked many times, but they didn't help
my modal
<div class="modal fade modal-popup confirm-uploaded-image-popup" id="uploadedImagePopup" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog modal-popup-content" role="document"> <div class="confirm-uploaded-image-popup-img"></div> <div class="modal-popup-desc">{!! trans("You have uploaded a picture. Are you sure you want to add it to your gallery?") !!}</div> <button class="btn btn-very-light-gray confirm-uploaded-image-popup-cancel">{{ trans('Cancel') }}</button> <button class="btn btn-green confirm-uploaded-image-popup-ok">{{ trans('OK') }}</button> </div> </div>
modal appears after file has been uploaded(from form).
window.showRegisteruploadConfirmPopup = function(regupload, okCallback, cancelCallback){ var $popup = $('#uploadedImagePopup'); var $popupImg = $popup.find('.confirm-uploaded-image-popup-img'); var $okBtn = $popup.find('.confirm-uploaded-image-popup-ok'); var $cancelBtn = $popup.find('.confirm-uploaded-image-popup-cancel'); //use a boolean flag to avoid successive popups calling previous popup's callbacks //this variable is separate for each popup $popupImg.css('background-image', 'url(' + regupload['path'] + ')'); window.lastReguploadId = regupload['id']; //these handlers are attached to the same element, so prevent multiple handlers from multiple uploads $okBtn.on('click', function(){ //only execute callback if it's still the same element, not overriden by a new upload if(window.lastReguploadId == regupload['id']){ okCallback.call(window); $popup.hide(); } }); $cancelBtn.on('click', function(){ //only execute callback if it's still the same element, not overriden by a new upload if(window.lastReguploadId == regupload['id']){ cancelCallback.call(window); $popup.hide(); } }); $popup.modal("show"); }
I've already lots of variants, for example
$popup.modal('show', {backdrop: 'static', keyboard: false;
also setting attributes to modal element<div class="modal fade modal-popup confirm-uploaded-image-popup" data-backdrop="static" data-keyboard="false">
but nothing works.