javascript bootstrap modal - 取消关闭

时间:2014-01-20 08:03:35

标签: javascript jquery twitter-bootstrap

我的工作是使用javascript bootstrap 2.0.4

我正在寻找一种通过逻辑控制从关闭中取消模态的方法。 但我找不到任何细节如何做到这一点

http://getbootstrap.com/javascript/#modals

类似于.NET

OnWindowClosing(eventArguement) 
{ 
    if (shouldCancel) {
      eventArguement.Cancel = true; 
      return;
    }
}

3 个答案:

答案 0 :(得分:43)

请看这里:www.bootply.com/QTTDf3zRgV

在这个例子中,如果选中复选框,则无法关闭模态(使用js / jquery):

$('#myModal').on('hide.bs.modal', function(e){
  if( $('#block').is(':checked') ) {
     e.preventDefault();
     e.stopImmediatePropagation();
     return false; 
   }
});

答案 1 :(得分:4)

e.cancel未定义并导致错误 - 这就是上述解决方案有效的原因。

您应该添加e.stopImmediatePropagation();

以下是演示:http://www.bootply.com/o5jsyItQMm

答案 2 :(得分:4)

您提供的解决方案无法正常工作,因此找到这个并且是完美的解决方案 参考此处https://github.com/twbs/bootstrap/issues/1202#issuecomment-48601320

$('#myModal').on('hide.bs.modal.prevent', closeModalEvent);
/**
* allow popup to hide or not
* @param {type} e
* @returns {Boolean}
 */
function closeModalEvent(e) {
    e.preventDefault();
    if ($('#block').is(':checked')) {
        $('#myModal').off('hide.bs.modal.prevent');
        $("#myModal").modal('hide');
        return true;
    }
    return false;
}