【问题标题】:javascript bootstrap modal - cancel closingjavascript bootstrap modal - 取消关闭
【发布时间】:2014-02-09 07:41:36
【问题描述】:

我的工作是使用 javascript bootstrap 2.0.4

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

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

类似.NET

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

【问题讨论】:

  • 您在寻找这个问题吗? stackoverflow.com/q/9894339/2454790
  • 尝试在你的函数 OnWindowClosing 中返回 false。
  • @Jahnux73 。不,帖子看起来想禁用关闭,虽然我仍然允许它关闭,但在某些情况下,我想中止关闭。

标签: javascript jquery twitter-bootstrap


【解决方案1】:

看这里:www.bootply.com/QTTDf3zRgV

在这个例子中,如果复选框被选中,那么模态框不能被关闭(使用 js/jquery):

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

【讨论】:

  • 正如@Affilnost 下面所说,e.cancel() 未定义使用e.stopImmediatePropagation()
  • 也适用于 Bootstrap 3。
【解决方案2】:

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

你应该添加e.stopImmediatePropagation();

这是一个演示:http://www.bootply.com/o5jsyItQMm

【讨论】:

    【解决方案3】:

    您提供的解决方案不起作用,因此请找到此解决方案及其完美解决方案 参考这里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;
    }
    

    【讨论】:

    • 我正在使用 Bootstrap v4-alpha.6 并绑定到 hide.bs.modal.prevent 事件,正如您在 the github issue 中链接的那样。这确实阻止了模式关闭,但是当用户第二次尝试在模式之外单击时,它会向控制台记录一个错误:bootstrap.min.js Uncaught Error: Modal is transitioning
    • 问题仍然存在??
    猜你喜欢
    • 2015-04-22
    • 2017-12-04
    • 1970-01-01
    • 2017-11-28
    • 2019-08-26
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    相关资源
    最近更新 更多