使用SimpleModal阻止onClose后,默认关闭控件不起作用

时间:2011-04-14 20:51:47

标签: jquery simplemodal

在基本的SimpleModal实现中,我使用onClose选项检查脏表单状态并阻止关闭:

.. 
    function onModalClose() {
       if (this.dirty && 
             !confirm('You have unsaved changes, continue anyway?')) {
           return;
       } 
       this.dirty=false;
       $.modal.close();
    }
..

问题是如果用户取消关闭操作,对话框上的默认关闭控件将不再起作用。 $.modal.close()仍有效。

我相信我可以通过不使用默认按钮,或者像我主动重新绑定我自己的关闭功能一样来解决这个问题,但这看起来很奇怪,我想知道是否有一些简单的解决方案我是俯视。

1 个答案:

答案 0 :(得分:4)

这有点像黑客,但我使用以下代码取得了成功。 (注意:我定义了onClose函数,所以 this 指向模态对话框。)

 onClose: function () {
     if (this.dirty &&
            !confirm('You have unsaved changes, continue anyway?')) {
         this.bindEvents();
         this.occb = false;
         return;
     }
     $.modal.close();
  }