2012-04-13 14 views
0

私はちょうどjavascriptで始まっているので、私の質問がばかげていると私を許してください。私はいくつかのチェックボックスを持つWebページを設計して、最初のチェックボックスをオンにすると他のチェックボックスが有効になるようにしたい。 JSを使ってどうすればいいですか?Javascriptを使ってチェックボックスを有効にする

function checkBox() { 
    if (window.document.form1.mainbox.checked=true) { 
     for (i=0;i<window.document.form1.Others.length;i++) { 
      window.document.form1.Others[i].disabled=false; 
     } 
    } 
    else { 
     for (i=0;i<window.document.form1.Others.length;i++) { 
      window.document.form1.Others[i].disabled=true; 
     } 
    } 
} 

そしてこのHTML::

<form name="form1"> 
<input name="mainbox" value="mainbox" onclick="checkBox()" type="checkbox"> Mainbox<br> 
<input disabled="disabled" checked="checked" tabindex="0" name="Others" type="checkbox">No. 1<br> 
<input disabled="disabled" checked="checked" tabindex="1" name="Others" type="checkbox"> No. 2<br> 
<input disabled="disabled" checked="checked" tabindex="2" name="Others" type="checkbox"> No. 3<br> 
</form> 

問題は、最初のクリックで、他のチェックボックスが有効になりますということですが、何も彼らはありませんつまり、その後のクリックに起こりません私は、次のコードを書きました再び無効になることはありません。この問題を解決するにはどうすればよいですか?どんな助けもありがとう。ありがとう!

EDIT

私はgabitzishの提案を踏襲し、それが働きました。しかし、私は今、パラメータとしてその他を渡したいので、私は書く:

<input name="mainbox" value="mainbox" onclick="checkBox(Others)" type="checkbox"> Mainbox<br> 

を、次のようにスクリプトを変更:

window.checkBox = function(chkname) { 
    if (window.document.form1.mainbox.checked==true) { 
     for (i=0;i<window.document.form1.chkname.length;i++) { 
      window.document.form1.chkname[i].disabled=false; 
     } 
    } 
    else { 
     for (i=0;i<window.document.form1.chkname.length;i++) { 
      window.document.form1.chkname[i].disabled=true; 
     } 
    } 
} 

をしかし、これは動作しません。ここで私を助けてください。私は非常に感謝しています。

答えて

1

にそれを変更してみてください(あなたは=行方不明)、およびいくつかのマイナーな変更:http://jsfiddle.net/CUeDg/1/

元のコードの問題点は、クリック時にcheckBox()関数が見つかりませんでした。

編集: ここでは、あなたの質問の後に編集を解決する:http://jsfiddle.net/CUeDg/3/ 私は、文字列として機能するのparamを渡されました。

後で編集: 私はあなたが切り替える必要があるチェックボックスのセットを知るためにそのパラメータが必要と思われる。私はそれについてもjsFiddleを作った:http://jsfiddle.net/CUeDg/5/ (私が間違っていると思われる場合は、この部分を考慮しないでください)

+0

ありがとう!これは私が欲しいものでした! – user828647

+0

私は自分の答えを編集しましたが、今すぐパラメータが関数に渡されます – gabitzish

+0

あなたは正しいと思われ、あなたのソリューションは動作します!もう一度ありがとう、私は約束通りあなたの答えを受け入れました:) – user828647

2

この行が故障している

if (window.document.form1.mainbox.checked=true) 

私はあなたのコードでjsFiddleを作成しました
if (window.document.form1.mainbox.checked)