2011-02-14 60 views
0

我使用的JavaScript:的Javascript - 檢查所有的複選框問題

<SCRIPT LANGUAGE="JavaScript"> 
function Check(chk) 
{ 
if(document.myform.CheckAll.value=="Check All"){ 
for (i = 0; i < chk.length; i++) 
chk[i].checked = true ; 
document.myform.CheckAll.value="Uncheck All"; 
} else { 

for (i = 0; i < chk.length; i++) 
chk[i].checked = false ; 
document.myform.CheckAll.value="Check All"; 
} 
} 
</script> 

上的HTML代碼:

<form name="myform" method="post" action=""> 
<input type="checkbox" name="check_list[]" value="<? echo $row['Report ID'] ?>"> 
<input type="checkbox" name="check_list[]" value="<? echo $row['Report ID'] ?>"> 
...*More Checkboxes*... 
<input style="font-family: sans-serif; font-weight:bold; font-size:12px; border: 1px #000000 solid;" type="button" id="CheckAll" name="CheckAll" value="Check All" 
onClick="Check(document.myform.check_list[])"> 

但它似乎沒有工作...

它在某些時候確實有效,但是之前我使用過名稱:「check_list []」('[]'位) - 是否會導致javascript問題?如果是這樣,我該如何阻止它?或者我怎樣才能得到JavaScript來檢查所有的複選框? :)

非常感謝。

回答

1

檢查了這一點(代碼重複去除+改進)

JS:

function Check(frm){ 
    var checkBoxes = frm.elements['check_list[]']; 
    for (i = 0; i < checkBoxes.length; i++){ 
     checkBoxes[i].checked = (frm.CheckAll.value == "Check All") ? 'checked' : ''; 
    } 
    frm.CheckAll.value = (frm.CheckAll.value == "Check All") ? "Uncheck All" : 'Check All'; 
} 

標記:

<form name="myform" method="post" action=""> 
<input type="checkbox" name="check_list[]" value="<? echo $row['Report ID'] ?>"> 
<input type="checkbox" name="check_list[]" value="<? echo $row['Report ID'] ?>"> 
<input style="font-family: sans-serif; font-weight:bold; font-size:12px; border: 1px #000000 solid;" type="button" id="CheckAll" name="CheckAll" value="Check All" 
onClick="Check(document.myform)"> 

例如:http://jsfiddle.net/steweb/XL6uh/

+0

非常感謝。 – 2011-02-14 22:00:27

1

的 「[]」 字符的在javascript中保留以標識數組。即,您無法使用document.myform.check_list []在DOM中引用它們。這將引用一個名爲'check_list'的元素數組。

你可以做的是從窗體的元素數組中取出複選框。只需改變你的onclick像這樣:

onclick="Check(document.myform['check_list[]'])" 

注:我會建議你學習一個JavaScript框架,如jQuery。它使得這種類型的事情變得如此簡單,並且你可以寫出不引人注意的JavaScript。