将类更改为检查复选框的JavaScript
将类更改为检查复选框的JavaScript
我有一个模态表单,该表单在页面加载时从数据库中获取数据填充。\n数据正确地传递并填充到模态框中 - 但是当复选框被选中时,它没有显示选中的动画,看起来是未选择的。\n我知道它是被选中的,因为在第一次点击复选框时,它看起来什么都没发生,仍然是未选择的,然后在第二次点击时它才选中。\n在点击复选框之前和之后检查页面时,我注意到 icheckbox_minimal
和 aria-checked=\"false\"
也需要更改以使选中的图像看起来被选中。我如何使用JavaScript更改这些内容?\n
\n可能有所帮助的是我正在使用以下内容:\n
\n我的JavaScript代码:\n
问题的出现原因:
在JavaScript中,我们可以使用setAttribute
函数来更改元素的任何属性。上面的代码片段展示了如何使用setAttribute
函数来改变一个元素的aria-checked
属性的值为false
。然而,这段代码可能会出现一些问题。
解决方法:
要解决这个问题,可以尝试以下方法:
1. 确保元素的ID正确:在代码中,使用了document.getElementById
来获取元素。请确保cbxScheduleEditWed.ClientID
的值是正确的元素ID。如果这个ID是错误的,那么代码将无法找到元素并执行相应的操作。
2. 检查元素是否存在:在执行setAttribute
函数之前,请确保元素已经存在于DOM中。如果元素不存在,代码将无法找到元素并执行相应的操作。
3. 检查浏览器兼容性:某些浏览器可能不支持aria-checked
属性的更改。在使用这个属性之前,请确保目标浏览器支持这个属性,并且可以通过setAttribute
函数进行更改。
要解决这个问题,我们需要确保元素的ID正确、元素存在于DOM中,并且目标浏览器支持aria-checked
属性的更改。通过检查这些因素,我们可以成功地使用setAttribute
函数来更改元素的aria-checked
属性的值。
问题的出现原因是由于Icheck实用程序(js/icheck.js)劫持并包装了复选框,这就是为什么您的方法被icheck的行为覆盖了。
解决方法是将原先的调用代码替换为以下代码:
document.getElementById('<%=cbxScheduleEditSun.ClientID%>').checked = true;
替换为:
$('#<%=cbxScheduleEditSun.ClientID%>').iCheck('check');
注意在开头添加'#'。
另外,您也可以使用纯粹的jQuery,可以参考这个答案:
谢谢,这解释了为什么它之前没有起作用,并提供了解决方案。