首页 > 解决方案 > 查找是否在父 div 中选中所有复选框

问题描述

我正在尝试获取 div 元素中两个输入复选框的状态。我只需要在检查两个复选框时才将标志变量设置为trui。如果任何输入复选框未选中,则应将其设置为 false。

我使用下面的代码使用for循环尝试了这个

var oParNode = oNode.ParentNode;
if (null != oParNode) {

  for (var i = 0; i < oNode.ParentNode.Nodes.length; i++) {
    if (oNode.ParentNode.Nodes[i].Checked) {
      checked = true;
    }
    else {
      checked = false;
    }
  }
}

在此代码中,Nodes[i] 返回输入元素。当我首先检查第一个复选框和接下来的第二个复选框时,此循环工作正常,但是当我首先检查第二个复选框时,根据最后执行的第二个复选框值将选中的变量设置为 true。

预期:只有当两个复选框都被选中时,我才需要返回 "checked" 为真。

有人可以建议我吗?

标签: javascripthtmlarrayscheckbox

解决方案


您可以使用Array#some()method来检查是否有未选中的:

var checked = oNode.ParentNode.Nodes.some(check => !check.checked)

推荐阅读