为什么Javascript不检查所有复选框?

时间:2013-04-20 12:39:45

标签: javascript jquery

我编写了一个脚本,当我点击第一个复选框时会检查所有复选框。当我在HTML中使用onClick事件时,它工作正常,但是当我尝试不使用onClick事件时,它无法正常工作。

以下是HTML代码:

<table>

<tr>
    <td><input id="check-all" type="checkbox"/>
</tr>

<tr>
    <td><input id="check1"  type="checkbox" name="check"/>
</tr>

<tr>
    <td ><input id="check2"  type="checkbox" name="check"/>
</tr>

<tr>
    <td><input id="check3"  type="checkbox" name="check"/>
</tr>

这是我要运行的Javascript代码,但不起作用。

var checkbox = document.getElementById("check-all");

checkbox.onclick = function () {
  checkboxes = document.getElementsByName('check');
  for(var i=0, n=checkboxes.length;i<n;i++) {
    checkboxes[i].checked = source.checked;
  }
}

我刚刚开始使用Javascript,我可能做错了。请指出。

2 个答案:

答案 0 :(得分:2)

我认为你有一个未定义的变量:

var checkbox = document.getElementById("check-all");

checkbox.onclick = function () {
  checkboxes = document.getElementsByName('check');
  for(var i=0, n=checkboxes.length;i<n;i++) {
    checkboxes[i].checked = this.checked;
  }
}

您需要使用值替换未在任何位置定义的“source”,以获取“check-all”的选中值,例如此

答案 1 :(得分:0)

您的source.checked无效且使用错误

this.checked

而不是

source.checked