私はjavascriptを始めたばかりなので、私の質問がばかげていると思われる場合はご容赦ください。最初のチェックボックスをオンにすると他のチェックボックスが有効になるように、いくつかのチェックボックスを備えたWebページをデザインしたいと思います。JSを使用してそれを行うにはどうすればよいですか?私は次のコードを書きました:
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>
問題は、最初のクリックで他のチェックボックスが有効になりますが、それ以降のクリックでは何も起こらないことです。つまり、それらは再び無効になりません。この問題を修正するにはどうすればよいですか?どんな助けでもありがたいです。ありがとう!
編集
私はgabitzishの提案に従い、それはうまくいきました。ただし、Othersをパラメーターとして渡したいので、次のように記述します。
<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;
}
}
}
しかし、これは機能しません。ここで私を助けてください。とてもありがたいです。