2016-05-13 80 views
0

我有一个模式表单,它使用页面加载的数据库中的数据填充。更改类以检查复选框JavaScript

正在传递数据并在模块中正确填充数据 - 但是,如果复选框被选中,则不会显示选中的动画,并且看起来未被选中。

我知道它被检查,虽然第一次点击复选框它看起来什么都不做,仍然看起来没有选中,然后在第二次点击它时检查复选框。

在点击复选框之前和之后检查页面我注意到icheckbox_minimal & aria-checked="false"也需要更改,以检查gfx的外观。我怎样才能改变这些使用JavaScript?

<span type="checkbox" class="" name="cbxScheduleEditTue"><div class="icheckbox_minimal" aria-checked="false" aria-disabled="false" style="position: relative;"><input id="ContentPlaceHolder2_cbxScheduleEditTue" type="checkbox" name="ctl00$ContentPlaceHolder2$cbxScheduleEditTue" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"><ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"></ins></div></span> 

它可能有助于知道我使用下列内容:

<script src="js/bootstrap.min.js"></script> 
<script src="js/icheck.js"></script> 

我的javascript:

<!-- Function - modalEditSchedule --> 
<script type="text/javascript"> 
    function modalEditSchedule(ScheduleRatesID, tempStartDate, tempEndDate, start, endtime, mon, tue, wed, thu, fri, sat, sun, CarersReq) { 
     document.getElementById('<%=sidInput.ClientID%>').value = ScheduleRatesID; 
     document.getElementById('<%=txtScheduleEditStartDate.ClientID%>').value = tempStartDate; 
     document.getElementById('<%=txtScheduleEditEndDate.ClientID%>').value = tempEndDate; 
     document.getElementById('<%=txtScheduleEditStartTime.ClientID%>').value = start; 
     document.getElementById('<%=txtScheduleEditEndTime.ClientID%>').value = endtime; 
     if (mon == 'Yes') { 
      document.getElementById('<%=cbxScheduleEditMon.ClientID%>').checked = true; 
     } 
     if (tue == 'Yes') { 
      document.getElementById('<%=cbxScheduleEditTue.ClientID%>').checked = true; 
     } 
     if (wed == 'Yes') { 
      document.getElementById('<%=cbxScheduleEditWed.ClientID%>').checked = true; 
     } 
     if (thu == 'Yes') { 
      document.getElementById('<%=cbxScheduleEditThu.ClientID%>').checked = true; 
     } 
     if (fri == 'Yes') { 
      document.getElementById('<%=cbxScheduleEditFri.ClientID%>').checked = true; 
     } 
     if (sat == 'Yes') { 
      document.getElementById('<%=cbxScheduleEditSat.ClientID%>').checked = true; 
     } 
     if (sun == 'Yes') { 
      document.getElementById('<%=cbxScheduleEditSun.ClientID%>').checked = true; 
     } 
     document.getElementById('<%=ddlScheduleEditCarersReq.ClientID%>').value = CarersReq; 
    }; 
</script> 
+3

请提供一个工作示例。在你的问题中有太多不必要的代码,只关注你的问题。 – roNn23

+0

jsfiddle pleaseee –

+0

我们的工作示例是指HTML和JavaScript,而不是一些ASP。你在问题编辑器中有一个代码片段编辑器 - 请使用它 – mplungjan

回答

1

的I检查工具(JS/icheck.js)被hijaking和包装你的复选框,这就是为什么你的方法被icheck行为覆盖。 Learn about it

// try replacing this calls: 
document.getElementById('<%=cbxScheduleEditSun.ClientID%>').checked = true; 

// by this ones (dont forget to add the '#' at the beggining): 
$('#<%=cbxScheduleEditSun.ClientID%>').iCheck('check'); 

,或作为补充,您可以使用纯jQuery的,read this answer

+0

谢谢你这解释了为什么它不工作,并提供了解决方案工作 –

0

您可以使用setAttribute函数更改元素的任何属性。

document.getElementById('<%=cbxScheduleEditWed.ClientID%>').setAttribute('aria-checked', 'false'); 
相关问题