[Jquery] 禁用Dialog右上角的“X”按钮


Answers

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

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

这是链接:

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

Question

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

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

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

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




我添加了一个相关的问题:在用户单击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})

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




至于你禁止用户点击X的任务,我建议采用以下几种方法之一:

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

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




如果你正在使用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中提到jqModal




Links