【问题标题】:jQuery UI Dialog - halt close eventjQuery UI 对话框 - 停止关闭事件
【发布时间】:2011-07-18 15:04:23
【问题描述】:

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

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

这可能吗?

【问题讨论】:

    标签: javascript jquery jquery-ui


    【解决方案1】:

    是的,您可以使用beforeClose 选项。来自docs

    当对话框试图关闭时触发此事件。如果 beforeClose 事件处理函数(回调函数)返回 false,将阻止关闭。

    代码示例

    提供一个回调函数来处理 beforeClose 事件作为初始化选项。

    $( ".selector" ).dialog({
       beforeClose: function(event, ui) { ... }
    });
    

    【讨论】:

    • 我以前看过这个,但没想到要用它来满足我的需要。它真的有帮助!如果有人好奇 $(ele).dialog("close") 会返回 beforeClose 的值。我有一个函数在关闭后做了很多其他工作,我也需要检查/返回 dialog("close") 调用。
    【解决方案2】:

    贾斯汀的回答可以很好地显示模态。如果你想取消关闭,你的函数应该返回 false,像这样:

    $( ".selector" ).dialog({
       beforeClose: function(event, ui) 
        { return check_if_unsaved_changes(..); }
    });
    

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

    【讨论】:

    • 我想知道返回值是否是如何取消的,但不确定。如果文档显示取消或不取消的示例而不是仅仅提及它,那就太好了。这有帮助。
    猜你喜欢
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2017-10-16
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2011-08-01
    相关资源
    最近更新 更多