我正在使用jquery ui 1.8,我有一个模型对话框弹出,如果用户点击复选框,则会出现另一个。
这要求他们说“是”或“否”,所以我删除了对话框中的“X”并将closeOnEscape设置为false。
然而我注意到当我这样做时,它下面的模型对话框会在它们逃脱时关闭。所以现在当选中复选框时弹出的那个我在第一个对话框中禁用了closeOnEscape。
当他们关闭它时我再次启用但它不起作用。我不知道为什么
$("#Dialog").dialog( "option", "closeOnEscape", true);
我甚至在萤火虫中这样做。我只是打开我的第一个对话框
在firebugs控制台中执行此操作
$("#Dialog").dialog( "option", "closeOnEscape", false);
然后验证现在是否已禁用转义。然后我尝试再次启用它
$("#Dialog").dialog( "option", "closeOnEscape", true);
然而它从未启用。
修改
好的,我认为它确实有效....事情是用户必须点击对话框的页脚部分(按钮所在的位置)。这当然不理想,因为谁会想到点击那个区域才能让它工作?
答案 0 :(得分:1)
您可以尝试将焦点设置回第一个对话框中的复选框(或对话框容器中的某个tabbable元素)。
假设您单击复选框时打开的对话框 - 带有是/否的对话框的ID为yesNoDialog
。让我们说第一个对话框中的复选框(我猜是#Dialog
)的ID为theCheckbox
。然后,当您关闭yesNoDialog
时,您将重新聚焦回theCheckbox
。喜欢这个
$("#yesNoDialog").dialog({
close: function() {
$("#theCheckbox").focus();
}
});
这是demo