Javascript - 检查所有复选框是否存在问题

时间:2011-02-16 11:58:50

标签: javascript forms checkbox

我有一些javascript代码,可以通过orginally检查/取消选中多个复选框,这很棒。但是我知道我已经将复选框移动到另一个表单......

我无法在任何地方找到另一种形式的复选框教程。

我该怎么做?

(为什么这个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被循环,我怎样才能使它工作?

非常感谢,

2 个答案:

答案 0 :(得分:0)

因为其他表单没有CheckAll,而且您正在寻找它。

答案 1 :(得分:0)

我建议摆脱CheckAll成员,而是将新的复选框值基于当前,例如:

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

此代码尚未经过测试,因为我在iPhone上,但您应该了解它的本质。