2011-02-16 95 views
0

我有一些javascript代碼,初步檢查/取消選中多個複選框,這是偉大的。但知道我必須將複選框移動到另一種形式...Javascript-檢查所有複選框的表單問題

我找不到任何地方的複選框教程。

我該怎麼辦呢?

(爲什麼這個JavaScript不是其他形式的合作?)

function Check(frm) 
{ 
    for (i = 0; i < frm.length; i++){ 
     frm[i].checked = (document.form3.CheckAll.value == "Check All") ? 'checked' : ''; 
    } 
    document.form3.CheckAll.value = (document.form3.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'] ?>"/> 
</form> 

和JavaScript代碼是從這種形式/按鈕跑:

<form name="form3" method="post" action=""> 
<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)"> 
<input style="font-family: sans-serif; font-weight:bold; font-size:12px; border: 1px #000000 solid;" type="submit" id="DeleteCheck" name="DeleteCheck" value="Delete Checked"></center> 
</form> 

爲什麼它不起作用?編輯:我意識到形式:'myform'是循環的,因爲上面的代碼工作時,它是不是循環)所以如果myform是循環的我怎麼能使它工作?

非常感謝,

+0

checked屬性應該是`true`或`false` - 不要依賴於字符串中的類型強制,其中的東西是一個空字符串,這只是醜陋的。 – Quentin 2011-02-16 12:23:06

回答

0

我建議擺脫CheckAll成員的,而是立足於當前,有點像新的複選框值:

function Check(frm) 
{ 
    for (i = 0; i < frm.length; i++){ 
        frm[i].checked = (frm[i].checked == '') ? 'checked' : ''; 
    } 
} 

此代碼沒有經過測試,因爲我對我的iPhone,但你應該明白它的本質。

0

因爲其他形式的不具有CheckAll,這是你正在尋找它的這種形式。

+0

那我該如何解決這個問題? =/ – 2011-02-16 12:06:39

+0

明確地抓取表單。將形式作爲另一個論點。使其成爲可選參數並切換回當前表單未指定。爲每個表單安排CheckAll。有很多方法。 – Quentin 2011-02-16 12:09:59