在基本的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();
}