如何在Internet Explorer中使用jQuery切换复选框状态

时间:2012-02-25 08:02:09

标签: jquery internet-explorer checkbox toggle

在我的表格上,有两个复选框,比如Master和Slave。每当检查主设备时,都需要检查从设备(尽管可以通过单独点击它来取消检查从设备)。在表单加载 - Master设置为check(默认值),这意味着还需要检查slave。

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

我正在使用jQuery和一些css类,它只在切换图像和未检查图像之间切换。这只是复选框CSS(可视/图形)的问题。该复选框的值仍然为true。

这是代码

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>

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

2 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分:0)

实际上有一种更简单的方法,您只需要将复选框checked的属性更改为truefalse

checkbox.on('click', toggleCheckbox);

function toggleCheckbox() { 
    if(checkbox[0].checked) checkbox[0].checked = false;
    else checkbox[0].checked = true;
}