将类更改为检查复选框的JavaScript

22 浏览
0 Comments

将类更改为检查复选框的JavaScript

我有一个模态表单,该表单在页面加载时从数据库中获取数据填充。\n数据正确地传递并填充到模态框中 - 但是当复选框被选中时,它没有显示选中的动画,看起来是未选择的。\n我知道它是被选中的,因为在第一次点击复选框时,它看起来什么都没发生,仍然是未选择的,然后在第二次点击时它才选中。\n在点击复选框之前和之后检查页面时,我注意到 icheckbox_minimalaria-checked=\"false\" 也需要更改以使选中的图像看起来被选中。我如何使用JavaScript更改这些内容?\n


\n可能有所帮助的是我正在使用以下内容:\n



\n我的JavaScript代码:\n



0
0 Comments

问题的出现原因:

在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属性的值。

0
0 Comments

问题的出现原因是由于Icheck实用程序(js/icheck.js)劫持并包装了复选框,这就是为什么您的方法被icheck的行为覆盖了。

解决方法是将原先的调用代码替换为以下代码:

document.getElementById('<%=cbxScheduleEditSun.ClientID%>').checked = true;

替换为:

$('#<%=cbxScheduleEditSun.ClientID%>').iCheck('check');

注意在开头添加'#'。

另外,您也可以使用纯粹的jQuery,可以参考这个答案:

读这个答案

谢谢,这解释了为什么它之前没有起作用,并提供了解决方案。

0