Javascript jQueryUI对话框、复选框和IE6的神秘案例
我有一个jQueryUI对话框,其中包含一些复选框。我想有条件地设置这些复选框的状态,然后打开对话框 不幸的是,这会导致IE6出现问题。如果在打开对话框之前设置了该复选框的值,则不会选中该复选框 例如,在下面的代码中,“对话框复选框1”从未在IE6中被选中,而是在其他浏览器中被选中 [更新]问题在于IE6如何重置附加在任何位置的任何复选框的状态。当对话框打开时,jQueryUI会将其附加到主体的顶部。显然,“这是一个已知的事实,当使用IE时 当复选框被添加到[任何地方]时,复选框将失去其状态(请参见下面的链接) 建议一些解决方案,但与更改jQuery UI代码有关;如果可能的话,我宁愿不做的事情 有什么解决办法吗 谢谢 D 代码:Javascript jQueryUI对话框、复选框和IE6的神秘案例,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我有一个jQueryUI对话框,其中包含一些复选框。我想有条件地设置这些复选框的状态,然后打开对话框 不幸的是,这会导致IE6出现问题。如果在打开对话框之前设置了该复选框的值,则不会选中该复选框 例如,在下面的代码中,“对话框复选框1”从未在IE6中被选中,而是在其他浏览器中被选中 [更新]问题在于IE6如何重置附加在任何位置的任何复选框的状态。当对话框打开时,jQueryUI会将其附加到主体的顶部。显然,“这是一个已知的事实,当使用IE时 当复选框被添加到[任何地方]时,复选框将失去其状态(请
$(文档).ready(函数(){
$('#dialog')。dialog({
自动打开:错误,
莫代尔:对
});
$(“打开对话框”)。单击(函数(){
$(“#formContainer.check1”).attr(“checked”,true);
$('dialog')。dialog('open');
$(“#formContainer.check2”).attr(“checked”,true);
});
});
jQuery对话框/复选框测试
对话框复选框1:
对话框复选框2:
为复选框指定不同的id,然后尝试使用id调用chek函数
如果复选框1的id为check1
$(“check1”).attr(“checked”,true)
试一试总是不愿意回答我自己的问题,但我发现了一个变通方法,如果其他人遇到这个问题,他们会觉得很有用 在打开对话框之前进行设置时,请使用“defaultChecked”属性,而不是“checked”。例如:
$("a#openDialog").click(function() {
$("#formContainer .check1").attr("defaultChecked", true);
$('#dialog').dialog('open');
$("#formContainer .check2").attr("checked", true);
});
请注意,打开后的“defaultChecked”不会对其进行检查。如果代码可能会移动,则两者都使用可能更安全。否。这不起作用。这不是选择器问题。这是IE6中jQueryUI如何将对话框附加到主体的问题。我会更新这个问题来澄清这一点。我不知道你为什么讨厌回答自己的问题,但我很高兴你这么做了。
$("a#openDialog").click(function() {
$("#formContainer .check1").attr("defaultChecked", true);
$('#dialog').dialog('open');
$("#formContainer .check2").attr("checked", true);
});