2011-07-05 12 views
0

最初のチェックボックスは機能しますが、2番目のチェックボックスは機能しません。何が間違っていますか? :S ** 最初のチェックボックスは機能しますが、2番目のチェックボックスは機能しません。

<meta http-equiv="Content-type" value="text/html; charset=UTF-8" /> 

<script type="text/javascript" language="javascript"> 
function SetAllCheckBoxes(FormName, AreaID) 
{ 

if(!document.forms[FormName]) 
return; 
var objCheckBoxes = document.getElementById(AreaID).getElementsByTagName('input'); 
if(!objCheckBoxes) 
return; 
var countCheckBoxes = objCheckBoxes.length; 
if(!countCheckBoxes) 
objCheckBoxes.checked = CheckValue; 
else 
for(var i = 0; i < countCheckBoxes; i++) 
objCheckBoxes[i].checked = false; 
} 
</script> 


</head> 

<div id="items"> 
    <input name="checkall" type="checkbox" onclick="SetAllCheckBoxes('SelectedItems','items');"><br> 
<form name="SelectedItems" action="" method="post"> 
<b>Select/Unselect All</b><br> 


<input id="idGSSmodules" type="checkbox" name="GSS" > 
<label for="idmodules">GSS</label><br> 
<input type="checkbox" name="GTS" id="idGSSmodules"> 
<label for="idmodules">GSS</label> 
<br> 

</div> 

<div id="itemss"> 
    <input name="checkall" type="checkbox" onclick="SetAllCheckBoxes('SelectedItemss','itemss');"><br> 
<form name="SelectedItemss" action="" method="post"> 
<b>Select/Unselect All</b><br> 


<input id="idGSSmodules" type="checkbox" name="GSS" > 
<label for="idmodules">GSS</label><br> 
<input type="checkbox" name="GTS" id="idGSSmodules"> 
<label for="idmodules">GSS</label> 
<br> 

</div> 

</form> 

</body> 
</html> 

EDIT * * ** * ** * ** * ** * ** * * ** * ** *** ** * ** * ** * ** * ** * ** * ** * ** * ** * * ** * ** *

私は、フォーム名(フォームSetAllCheckBoxes上のメソッドをどのように呼ぶのですかreaID);言い換えれば、チェックボックスを使用しないで関数を呼び出すことができますか?これを試し

が、その後、私は

function unCheckBoxes(FormName, AreaID) { 
    if(!document.forms[FormName]) 
    return; 
    var objCheckBoxes = document.getElementById(AreaID).getElementsByTagName('input'); 
    if(!objCheckBoxes) 
    return; 
    var countCheckBoxes = objCheckBoxes.length; 

    for(var i = 0; i < countCheckBoxes; i++) 
    objCheckBoxes[i].checked = false; 
} 
function checkCheckBoxes(FormName, AreaID){ 
    if(!document.forms[FormName]) 
    return; 
    var objCheckBoxes = document.getElementById(AreaID).getElementsByTagName('input'); 
    if(!objCheckBoxes) 
    return; 
    var countCheckBoxes = objCheckBoxes.length; 


    for(var i = 0; i < countCheckBoxes; i++) 
    objCheckBoxes[i].checked = true; 
} 
checkCheckBoxes('locForm','locCheckboxes'); 
+1

、あなたが「働いていない」と言う、それは正確に間違っているかを説明するのに便利です。 JavaScriptは動作しませんか?フォームは正しく提出されていませんか? –

答えて

1

チェックボックスの値を変更傾けるあなたの2つのチェックボックスは、真の一意の識別子(ないname)である、同じidを持っています。ブラウザは同じIDを持つ2つのオブジェクトを認識するのを拒否します。

にコードを変更し

<input id="GSS" type="checkbox" name="GSS"> 
<label for="GSS">GSS</label><br/> 
<input type="checkbox" name="GTS" id="GTS"> 
<label for="GTS">GSS</label> 

EDIT:あなたはまた、ユニークな名前にあるチェックボックスの2番目のセットの名前を変更する必要があります。ページ上の各idは一意である必要があります。

+0

ご協力いただきありがとうございます。今度は別の質問に、どのように私はこのメソッドを1つのメソッドコールを使って呼び出すことができますか? =) – Matt

2

入力要素のチェックボックスにチェックされたプロパティのみがあり、これを使用すると、ページ上のすべてのチェックボックスが、クリックされたチェックボックスと同じ値に設定されます。

function setAllOtherCheckboxes(checkAllbox) 
{ 
    var objCheckBoxes = document.getElementsByTagName('input'); 

    var chkBox = 0; 
    for (chkBox in objCheckBoxes) 
    { 
     objCheckBoxes[chkBox].checked = checkAllbox.checked;    
    }  
}  

とあなたのコードで

一般
<input type="checkbox" name="All" value="on"" onclick="setAllOtherCheckboxes(this);">Alles<br> 
関連する問題