【问题标题】:How to give a javascript made checkbox an onchange event?如何给一个 javascript 制作的复选框一个 onchange 事件?
【发布时间】:2020-08-21 15:27:14
【问题描述】:

嘿,我正在尝试在 javascript 中创建一些复选框并将它们添加到我的 html 中。我想为复选框提供一个 onchange 事件,但该事件仅在它们被创建和站点加载时触发,并且我单击复选框没有任何反应。同样,如果我在浏览器中查看网站的源代码,复选框中也没有 onchange 事件。

hashtags 是一个数组,其中的对象具有一些属性,但它们并不重要

hashtags.forEach(element => {
    if(element.categorie == searchedCategorie && element.beitrage == searchedSize && element.language == searchedLang){
        searchedHashtags.push(element.hashtagName);
        var label = document.createElement("label");
        var checkbox = document.createElement("input");
        checkbox.className = "checkboxes";
        checkbox.type = "checkbox";
        checkbox.value = element.hashtagName;
        checkbox.onchange = handleChange(checkbox);
        checkbox.name = element.hashtagName;
        label.appendChild(checkbox);
        label.innerHTML += element.hashtagName;
        body.appendChild(label);
        body.appendChild(document.createElement("br"));
    }
});



function handleChange(checkbox){
if(checkbox.checked == true){
    countChecked++;
}else if(checkbox.checked == false){
    countChecked--;
}
txtarea.innerHTML = countChecked + "/" + searchedHashtags.length + " ausgewählt";
alert(countChecked);

}

【问题讨论】:

  • 用 setAttribute() 解决了,但我不知道如何删除问题? :D

标签: javascript html arrays checkbox onchange


【解决方案1】:

更换一下就可以解决这个错误

checkbox.onchange = handleChange(checkbox)

与

checkbox.setAttribute("onchange","handleChange(this)");

【讨论】:

  • 这行代码可能是解决方案,但是没有上下文。包括解释确实有助于提高帖子的质量。您的代码是否建议替换checkbox.onchange = handleChange(checkbox);?与您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
相关资源
最近更新 更多