使用jquery防止yii模式弹出窗口关闭

时间:2015-05-07 06:01:03

标签: jquery twitter-bootstrap

您好我正在研究yii框架。我正在使用Twitter引导程序,我已经使用自定义ajax加载了我的弹出窗口,因此在关闭后它们将从DOM中删除。

我希望防止弹出窗口在文件上传时错误地点击叠加层时关闭弹出窗口。谁能告诉我怎么做?

我发现了一个事件' hide.bs.modal'触发弹出窗口时触发,但是我无法阻止弹出窗口关闭。请帮忙。

@thanks hamad。 我找到了这个链接Prevent Bootstrap Modal from disappearing when clicking outside or pressing escape?。好,但我需要在用户上传文件时关闭它。所以我无法设置'背景'到了静态'从一开始。

我有人制作了弹出式背景:静态动态。但我无法动态删除backdrop:static属性。我试过了 $("#model-id")。data(' modal')。options.backdrop = false; 但这不起作用。当我点击一边时,我的弹出窗口仍然没有关闭。

请帮忙。

2 个答案:

答案 0 :(得分:1)

只有使用普通引导模态时,所选答案才有效。反对@hamed的声明,如果你实际上调用了模态作为Yii扩展,那么你应该在构建扩展时指定背景/键盘选项,如:

\yii\bootstrap\Modal::begin([
    'id' => 'staffWindow',
    'header' => 'Do something',
    'clientOptions' => [
        'backdrop' => 'static'
    ]
]);

答案 1 :(得分:0)

我之前找到了这个解决方案,但是写给其他人,如果他们坚持这个问题。这就是我在Yii所做的。

您可以在@hamed建议的代码中添加它。如果用户在叠加层上点击弹出窗口的一侧或按下“Esc”键,这将阻止关闭弹出窗口。键。

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

OR 在模型弹出窗口中为您定义data-backdrop="static" data-keyboard="false"的模型容器添加class='model'。如果用户在叠加层上点击弹出窗口的一侧或按下“Esc”键,这将阻止关闭弹出窗口。键。

动态控制弹出窗口的关闭:

在脚本文件中执行以下操作,将您的功能与'hide.bs.modal'事件绑定。

//this event is triggered automatically when popup is about to close
element.on('hide.bs.modal', function (e){

if( your condition met ){
   e.preventDefault(); // to prevent popup from closing by default
  //do your stuff
}
else{
// let popup close
 }
});