禁用Dialog右上角的"X"按钮

BAH*_*Dev 40 jquery dialog jquery-ui jquery-ui-dialog

可能重复:
删除jQueryUI对话框上的关闭按钮?

我正在尝试创建一个对话框,要求用户在继续之前同意术语,并且不希望用户只需单击对话框右上角的"X"即可关闭.我想要求用户点击"我同意".

有没有办法禁用对话框中的'X'?

澄清:我只是使用标准的jQuery UI对话框:$ .dialog().

小智 60

我在另一篇文章中发现了这个,希望它有所帮助,它对我有用:

$("#div2").dialog({
   closeOnEscape: false,
   open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
});
Run Code Online (Sandbox Code Playgroud)

这是链接:

如何删除jQuery UI对话框上的关闭按钮?


Che*_*try 40

我假设你正在使用jQuery UI.

如果是这样,如果未单击"同意"按钮,则附加beforeClose事件处理程序并从中返回false.您也可以使用CSS将X按钮设置为{display: none}

var agreed = false; //has to be global
$("something").dialog({
    buttons: {
        'Apply': function () {
            agreed = true;
            $(this).dialog("close");
        }
    },
    beforeClose: function () {
        return agreed;
    }
});
Run Code Online (Sandbox Code Playgroud)


SLa*_*aks 13

如果对话框是常规弹出窗口,则无法阻止用户关闭窗口.

您可以使用jQuery模式对话框插件,例如jqModal.

但请注意,您无法阻止用户关闭主窗口.


编辑:如果您正在使用jQuery UI对话框,则可以添加以下CSS规则:

#someId .ui-dialog-titlebar-close {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

你也应该设置closeOnEscapefalse.


另外,为什么要强迫用户点击I Agree
为什么你不能像对待你一样对待一个关闭的窗口?