简体   繁体   English

动态复选框onclick无效

[英]Dynamic checkbox onclick is not working

I am creating dynamic checkboxes and want a function to be called every time I check any checkbox. 我正在创建动态复选框,并希望每次选中任何复选框时都会调用一个函数。 The checkbox looks good but my onclick event does not work. 复选框看起来不错但我的onclick事件不起作用。 Also if I do not pass 'this' to my function, my function gets called on load as well. 另外如果我没有将'this'传递给我的函数,我的函数也会在加载时被调用。 Below is my code: 以下是我的代码:

for(var i=0; i<options.length; i++) {
  var op = options[i].new_name;     
  var label = document.createElement("label");
  var description = document.createTextNode(op);

  var checkbox = document.createElement("input");
  checkbox.type = "checkbox";    
  checkbox.name = "multiselectCheckbox";
  checkbox.value = op;
  checkbox.onclick= "getCheckedValues(this)";

  label.appendChild(checkbox);   
  label.appendChild(description);

  document.getElementById("multiselect").appendChild(label);    
  document.getElementById("multiselect").appendChild(document.createElement("br"));
}

Please let me know what am I doing wrong here. 请让我知道我在这里做错了什么。

The below snippet works. 以下代码段有效。 I suppose this is what you want to do. 我想这就是你想要做的。 You need not pass this in the function and also call the function without "" 你不需要在函数中传递this ,也可以在没有""情况下调用函数

 var options = [{new_name: "1"}, {new_name: "2"}] for(var i=0; i<options.length; i++) { var op = options[i].new_name; var label = document.createElement("label"); var description = document.createTextNode(op); var checkbox = document.createElement("input"); checkbox.type = "checkbox"; checkbox.name = "multiselectCheckbox"; checkbox.value = op; checkbox.onclick = getCheckedValues; label.appendChild(checkbox); label.appendChild(description); document.getElementById("multiselect").appendChild(label); document.getElementById("multiselect").appendChild(document.createElement("br")); } function getCheckedValues() { alert(this.value); } 
 <div id="multiselect"></div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM