【问题标题】:prevent bootstrap modal close on click outside防止在外部点击时关闭引导模式
【发布时间】:2017-08-04 22:44:55
【问题描述】:

如果用户在模式外单击或按 ESC,我想防止关闭引导模式。我知道这个问题被问了很多次,但他们没有帮助

我的模态

<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>

文件上传后出现模态(从表单)。

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");

}

我已经有很多变体,例如$popup.modal('show', {backdrop: 'static', keyboard: false; 也将属性设置为模态元素&lt;div class="modal fade modal-popup confirm-uploaded-image-popup" data-backdrop="static" data-keyboard="false"&gt;,但没有任何效果。

【问题讨论】:

    标签: jquery twitter-bootstrap twitter-bootstrap-3 modal-dialog bootstrap-modal


    【解决方案1】:

    使用模态js属性keyboard真或假。在您的代码中没有类 .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">&times;</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>

    【讨论】:

      猜你喜欢
      • 2014-04-28
      • 2022-06-11
      • 1970-01-01
      • 2022-07-11
      • 2012-04-04
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 2014-07-26
      相关资源
      最近更新 更多