2012-02-25 107 views
1

在我有一个表单中,有两个复选框,说Master和Slave。无论何时检查主站,都需要检查从站(尽管从站可以通过单独点击来取消选中)。在表单加载 - 主设置为检查(默认值),这意味着从机也需要检查。如何在Internet Explorer中使用jQuery切换复选框状态

然后,我有一些onChange事件处理程序,它根据主服务器的状态手动检查和取消选中从服务器。这是它不起作用的地方,只是在IE中。它在其他浏览器中工作正常。我不知道为什么会发生这种情况。

我正在使用jQuery和一些只能在选中的图像和未选中的图像之间切换的css类。这只是与复选框CSS(视觉/图形)相关的问题。该复选框的值仍然为真。

下面是代码

dojo.ready(function() { 
    // some code removed for simplicaity sake 
$("#militaryOfficial").attr("checked", true); 
$("#waiveTax").attr("checked", true); 
} 
$('#militaryOfficial').click('change', toggleTaxWaive);  
}); 

function toggleTaxWaive(){ 
if($("#militaryOfficial").is(':checked')) 
{ 
    if(!$("#waiveTax").is(':checked')) 
    { 
     $("#waiveTax").trigger("click"); 
    } 
}else 
{ 
    $("#waiveTax").attr('checked', false); 
} 
} 

的HTML是非常基本的。根据评论中的要求添加

<div class="checkBox_Border"> 
<span class="cds_spanCheck" style="background: url("/images/checkbox_nonSelect.png")  
no-repeat scroll 0% 0% transparent;"></span> 
<span class="cds_spanCheck" style="background: url("/images/checkbox_Select.png") no- 
repeat scroll 0% 0% transparent;"></span> 
<input id="waiveTax" class="checkBox_innerWrap" type="checkbox" checked="checked" 
value="true" name="waiveTax"> 
</div> 

请指教。任何帮助非常感谢。

+1

你可以张贴一些HTML? – 2012-02-25 08:11:15

+0

或者至少将它张贴在小提琴上。 – Oybek 2012-02-25 08:16:32

+0

在发布的代码中有几个严重的语法错误:这不会在任何地方工作。我想这只是一个复制粘贴问题。例如。 addResetButton();需要“function(){”而不是“;”最后。 但是,您可以尝试设置已检查的属性,如下所示: some_input.prop('checked','checked'); 并取消选中它: some_input.prop('checked',''); 适用于所有浏览器。可能IE混淆了真/假... – 2012-02-25 08:32:16

回答

1

试试这个:

$("#Button1").click(function() { 
       if ($('#Checkbox1').attr('checked')) { 
        Checkbox1.checked = false; 
       } 
       else { 
        Checkbox1.checked = true; 
       } 
      }); 
+0

Vinod - 这实际上有用!这真是太棒了,我花了很多时间在这个上面。我很好奇 - 是什么让它工作,除了一些语法之外,这里有什么不同。 – user1006072 2012-02-25 08:29:46

相关问题