动态复选框onclick无效

时间:2016-05-20 08:23:17

标签: javascript html

我正在创建动态复选框,并希望每次选中任何复选框时都会调用一个函数。复选框看起来不错但我的onclick事件不起作用。如果我没有通过这个'对于我的函数,我的函数也被加载调用。 以下是我的代码:

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"));
}

请告诉我这里我做错了什么。

1 个答案:

答案 0 :(得分:0)

以下代码段有效。我想这就是你想要做的。您无需在函数中传递this,也可以在没有""

的情况下调用函数

&#13;
&#13;
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);  
}
&#13;
<div id="multiselect"></div>
&#13;
&#13;
&#13;