javascript - 无法在复选框上输入 addEventListener?

标签 javascript html css google-cloud-firestore materialize

db-kepala-ruangan.js

 var checkbox = document.getElementsByName('checkbox');
      var dragon = document.createElement("label");
      dragon.innerHTML = "imam";
      for(var i = 0; i < checkbox.length; i++){
            checkbox[i].addEventListener("change", checkedOrNot)
          }

          function checkedOrNot() {
            var isChecked = this.checked;

            if (isChecked) { //checked
              console.log('checked');
            } else { //unchecked
              console.log('unchecked');
            }
          }

我正在为这些东西使用 materialize 和 cloud firestore。

这是完整的元素 https://github.com/imamdtechnolife/simpelkes

最佳答案

要为所有复选框添加事件监听器,您必须获取名称为 input 的所有标签,并将事件监听器仅添加到类型为 checkbox 的标签。

var inputList = document.getElementsByTagName('input');

for(var i = 0; i < inputList.length; i++){
    if(inputList[i].type == "checkbox") {
        inputList[i].addEventListener("change", checkedOrNot)
    }
}

function checkedOrNot() {
    var isChecked = this.checked;

    if (isChecked) { //checked
        console.log('checked');
    } else { //unchecked
        console.log('unchecked');
    }
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>


  <form action="#">
    <p>
      <label>
        <input type="checkbox" />
        <span>Red</span>
      </label>
    </p>
    <p>
      <label>
        <input type="checkbox" checked="checked" />
        <span>Yellow</span>
      </label>
    </p>
    <p>
      <label>
        <input type="checkbox" class="filled-in" checked="checked" />
        <span>Filled in</span>
      </label>
    </p>
    <p>
      <label>
        <input id="indeterminate-checkbox" type="checkbox" />
        <span>Indeterminate Style</span>
      </label>
    </p>
    <p>
      <label>
        <input type="checkbox" checked="checked" disabled="disabled" />
        <span>Green</span>
      </label>
    </p>
    <p>
      <label>
        <input type="checkbox" disabled="disabled" />
        <span>Brown</span>
      </label>
    </p>
  </form>
        

关于javascript - 无法在复选框上输入 addEventListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58471758/

相关文章:

javascript - 在 react js 状态下更新 json 数组

javascript - 如果变量未定义,有没有办法可以停止浏览器中的脚本?

javascript - 如何制作:hover appearance remain after click/focus in search bar

css - 修复浏览器缩放时的图标大小(使用 Chrome)

javascript - 使用外部加载的链接执行 JavaScript 函数

javascript - 如何在 jQuery 中向变量添加最大值和最小值

javascript - 使用 Javascript 刷新静态 Div

html - Bootstrap Grid系统连续多个div

jquery - 一旦它到达容器 div,将导航栏背景更改为黑色

html - 表 td 宽度未被拾取