jQuery UI对话框 - 暂停关闭事件

gur*_*un8 15 javascript jquery jquery-ui

有没有办法停止jQuery UI对话的关闭事件?

我有一个带有表单的对话模式.当用户关闭对话框时,我想提示"继续而不保存更改?" [是] [否].[是]按钮继续并按预期关闭对话框.[否]按钮将停止关闭事件并保持对话框打开.

这可能吗?

Jus*_*ier 38

是的,您可以使用该beforeClose选项.来自文档:

对话框尝试关闭时会触发此事件.如果beforeClose事件处理程序(回调函数)返回false,则将阻止关闭.

代码示例

提供一个回调函数来处理beforeClose事件作为init选项.

$( ".selector" ).dialog({
   beforeClose: function(event, ui) { ... }
});
Run Code Online (Sandbox Code Playgroud)


Ori*_*itK 6

贾斯汀的回答可以很好地显示模态。如果您想取消关闭,您的函数应返回 false,如下所示:

$( ".selector" ).dialog({
   beforeClose: function(event, ui) 
    { return check_if_unsaved_changes(..); }
});
Run Code Online (Sandbox Code Playgroud)

如果对话框应该关闭,则 check_if_unsaved_changes 应该返回 true,如果它不应该关闭,则返回 false。