2013-04-20 26 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