带输入复选框的表检查/取消选中

时间:2018-05-20 02:45:00

标签: javascript checkbox

我在附表中进行检查时遇到问题,颜色样式非常有效,除非我点击第一个任何复选框都不会改变颜色样式。

我粘贴代码,我只使用javascript pure。

enter function valid(chk){
    var trckk = document.getElementsByTagName('tr');
    var parent = chk.parentNode.parentNode;
    var chkcomite = document.getElementsByName('idcom');
    var len = chkcomite.length;
    for(var i=0;i<len;i++){
        if(chkcomite[i].checked === true){
            if(chkcomite[i]!=chk && chk.checked){
                chkcomite[i].checked = false;
                for(var i=0;i<trckk.length;i++){
                    trckk[i].style.background='';
                    trckk[i].style.color='';
                }
            }
            parent.style.background='#EC1C24';
            parent.style.color='#FFF';  
        }else{
            parent.style.background='';
            parent.style.color='';
        }
    }
}

这里

你能帮助我吗? 感谢。

1 个答案:

答案 0 :(得分:0)

我认为你必须写这样的函数

&#13;
&#13;
function valid(chk) {
  var parent = chk.parentNode.parentNode;
  if (!chk.checked) {
    parent.style.background = "";
    parent.style.color = "";
    return;
  }
  var trckk = document.getElementsByTagName("tr");
  var chkcomite = document.getElementsByName("idcom");
  var len = chkcomite.length;
  for (var i = 0; i < trckk.length; i++) {
    trckk[i].style.background = "";
    trckk[i].style.color = "";
  }
  for (var i = 0; i < len; i++) {
    chkcomite[i].checked = false;
    chkcomite[i].parentNode.parentNode.style.background = "";
    chkcomite[i].parentNode.parentNode.style.color = "";
  }
  chk.checked = true;
  parent.style.background = "#EC1C24";
  parent.style.color = "#FFF";
}
&#13;
<table>
  <tr>
    <td>
      row 1
    </td>
    <td>
      <input onchange="valid(this)" name="idcom" type='checkbox'>
    </td>
  </tr>
  <tr>
    <td>
      row 2
    </td>
    <td>
      <input onchange="valid(this)" name="idcom" type='checkbox'>
    </td>
  </tr>
  <tr>
    <td>
      row 3
    </td>
    <td>
      <input onchange="valid(this)" name="idcom" type='checkbox'>
    </td>
  </tr>
</table>
&#13;
&#13;
&#13;