使用Javascript启用复选框

时间:2012-04-13 12:18:20

标签: javascript html

我刚刚开始使用javascript,所以请原谅我,如果我的问题看起来很愚蠢。我想设计一个带有一些复选框的网页,以便在选中第一个时,其他复选框变为启用状态。我怎么用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;
        }
    }
}

但这不起作用。请帮帮我。我将非常感激。

2 个答案:

答案 0 :(得分:2)

此行有错(您错过了a =)

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

尝试将其更改为

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

答案 1 :(得分:1)

我已经使用您的代码创建了一个jsFiddle,并进行了一些小的更改:http://jsfiddle.net/CUeDg/1/

原始代码的问题是在点击时找不到checkBox()函数。

修改 以下是稍后修改问题的解决方案:http://jsfiddle.net/CUeDg/3/ 我已将param作为字符串传递给函数。

稍后编辑: 我怀疑你需要那个参数来知道你需要切换的复选框集。我也为此做了一个jsFiddle:http://jsfiddle.net/CUeDg/5/ (如果我怀疑错了,不要考虑这部分答案)