使用简单模式阻止 onClose 后,默认关闭控制不起作用



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

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

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

我相信我可以通过不使用默认按钮来解决这个问题,或者做一些像主动重新绑定我自己的close函数这样的事情,但这似乎很奇怪,我想知道是否有一些简单的解决方案我忽略了。

这是一个hack,但我有成功与以下代码。(注意:我定义了onClose函数,所以这个指向模态对话框。)

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

最新更新