【问题标题】:JS: Setting checked to true is not workingJS:将检查设置为 true 不起作用
【发布时间】:2018-10-28 00:17:46
【问题描述】:

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

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

我可以在控制台中看到我的检查设置为 true(不确定问题是布尔值显示为字符串“true”还是这只是 chrome 表示)但元素没有得到复选标记。

输入 id="element" class="element" name="element" type="checkbox" 值=“1”检查=“真”

加载默认复选框已正确设置,但是当我尝试取消选中并设置新复选框时(视觉上)什么也没有发生。

感谢您的帮助。

【问题讨论】:

  • 请提供一个 runnable minimal reproducible example 来重现该问题。没有提供足够的代码上下文
  • 设置 checked = true 应该可以工作。还有其他事情正在发生,但是如果没有代码来重现问题,这是不可能说出的。

标签: javascript dom checkbox


【解决方案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>

【讨论】:

    【解决方案2】:

    所以问题是,如果您应该手动执行此操作,您的代码应该是这样的:

    &lt;input id="element" checked&gt;

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

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

    这会让你的输出像上面那样。 希望它对你有用:)

    【讨论】:

      猜你喜欢
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多