JS:设置为true设置不起作用

时间:2018-10-27 15:25:46

标签: javascript dom checkbox

尝试通过JS中的addEventListener设置复选框,我已经尝试使用

element.checked = true;
element.setAttribute('checked', true);
element.setAttribute('checked', "checked");

我可以在控制台中看到我的checked设置为true(不确定问题是否是布尔值显示为字符串“ true”,或者这仅仅是一个chrome表示形式),但是元素未获取复选标记。

  

输入id =“ element” class =“ element” name =“ element” type =“ checkbox”   值=“ 1”已选中=“ true”

“加载”时正确设置了默认复选框,但是当我尝试取消选中并设置新复选框时,(视觉上)没有任何反应。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我不确定您要做什么,但我认为您想根据另一个复选框的状态来切换它。

看看这个:

/* get the checkboxes */
const checker1 = document.getElementById('checker');
const checker2 = document.getElementById('checker2');

/* now listen for change on checker1 and action */
/* change the selected state of checker two to be opposite of checker 1 */
checker1.addEventListener('change', () => checker2.checked = !checker1.checked);
<p>
  <label for=checker>Click me to toggle the other</label>
  <input type=checkbox id=checker>
</p>

<p>
  <label>I will be toggled</label>
  <input type=checkbox id=checker2 checked>
</p>

答案 1 :(得分:0)

问题是,如果您应该手动执行此操作,那么您的代码就应该像这样:

<input id="element" checked>

为了使用javascript实现相同的目的。仅当您将检查值设置为空字符串时,才会发生这种情况。像这样:

element.setAttribute("checked","");

这将使您的输出像上面一样。 希望能为您解决:)