2013-04-20 78 views
-1

我写了一个脚本,当我点击第一个复选框时,它会检查所有复选框。当我在HTML中使用onClick事件时,它工作得很好,但是当我不使用onClick事件时它不起作用。为什么Javascript不检查所有复选框?

下面是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,我可能做错了什么。请指出。

+0

什么source.checked?我认为它应该是checkbox.checked – 2013-04-20 12:43:22

回答

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

你需要更换“源”,这是不与任何地方的值定义为得到“签所有”,例如选中的值这个。

+0

啊,谢谢。是的,这是我的好意。我甚至没有认识到“来源”。感谢帮助伙伴。 :) – 2013-04-20 12:45:46

+0

不用担心。如果您满意,请选择此答案 - 将标记为让人们可以在主列表中看到答案。 – Paddy 2013-04-20 12:54:52

0

你source.checked无效和错误使用的

this.checked 

代替

source.checked