2012-02-25 2 views
1

На форме у меня есть два флажка, скажем, Master и Slave. Всякий раз, когда мастер проверяется, ведомый должен быть проверен (хотя ведомый может быть снят без необходимости индивидуального нажатия на него). На загрузке формы - Мастер установлен для проверки (значение по умолчанию), что означает, что ведомое устройство также необходимо проверить.Как переключить состояние флажка с помощью jQuery в Internet Explorer

Затем у меня есть обработчик события 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? –

+0

Или, по крайней мере, опубликовать его на скрипке. – Oybek

+0

В вашем опубликованном коде есть несколько серьезных синтаксических ошибок: это не сработает. Я думаю, это просто проблема с копией. Например. addResetButton(); need "function() {" вместо ";" в конце. Однако вы можете попробовать установить свойство checked следующим образом: some_input.prop ('checked', 'checked'); и снимите его так: some_input.prop ('checked', ''); Работает для меня во всех браузерах. Возможно, IE путают true/false ... –

ответ

1

Попробуйте это:

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

Vinod - это действительно работает! Это потрясающе, я потратил столько времени на это. Мне любопытно, что заставило его работать, что здесь другое, кроме некоторого синтаксиса. – user1006072

Смежные вопросы