[Jquery] 禁用对话框右上角的“X”按钮


Answers

我发现在另一个帖子上,希望它可以帮助,它为我工作:

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

这是链接:

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

Question

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

我正在尝试做一个对话框,要求用户在继续之前同意术语,并且不想让用户只需单击对话框右上角的“X”即可关闭。 我想要求用户点击“我同意”。

有什么办法可以禁用对话框中的“X”?

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




如果你使用alert ,也许你应该考虑confirm

if (!confirm("Click OK to confirm that you agree to the terms and conditions.")) {
    // they didn't click OK
} else {
    // they did.
}

或者,使用像SLaks这样的插件




至于你禁止用户点击X的任务,我会推荐几种方法之一:

  1. 使用CSS规则将该按钮的显示设置为“无”。 使用Firebug的Inspect模式,你应该能够看到jQuery UI对话框放在那里的标签,并为它添加一个CSS规则。 如果显示为无,用户就不能点击它。
  2. 同样,附加一个jQuery .click()事件什么都不做,并返回false来停止事件传播(我从来没有真正做过这个,但它应该工作)。
  3. 您可以将一个函数附加到对话框的beforeClose()事件上,如果用户没有点击“我同意”,就可以阻止对话框关闭。
  4. 最复杂的,但如果你想要类似的对话框或做出其他功能的变化很有用,你可以通过创建一个jQuery用户界面插件,在内部实例化对话框,然后通过应用CSS规则或附加事件修改默认行为如上所述。

希望其中一个让你朝着正确的方向前进...




我添加了一个相关的问题:在用户单击X关闭特定的对话框窗口后重新加载,不在其他窗口中重新加载。 我在.js中添加了jQuery对话框函数:

.click(function(i){ jQuery('span.ui-dialog-title').each(function(index) {


    if (jQuery(this).text() == '/**Title String Here**/') {

        a.close(i); location.reload(true); 

    } else {

        a.close(i);
    }

  });
return false})

这将在span文本中查找标题,并在关闭时重新加载,否则关闭而不重新加载。