2012-02-25 82 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