选中所有复选框一个复选框不起作用

时间:2010-07-02 07:15:52

标签: javascript dom

以下是我的代码,任何人都可以告诉我哪里出错了。

<input type="checkbox" name="Chk[]" value="<?php echo($arr['id']); ?>" onClick="Click()" id="CK">// all checkboxex
<input onClick="selectall()" type="checkbox" value="yes" name="c1">// one checkbox
/*function called*/
function selectall()
    {
         if(document.frm.chk.value=="false")
         {
             document.frm.chk.value="true";
             for(var i=0; i<document.frm.elements.length; i++)
               {
                 if((document.frm.elements[i].type)=="checkbox")
                   {
                     document.frm.elements[i].checked = true;
                   }
                }
         }
        else if(document.frm.chk.value=="true")
        {
            document.frm.chk.value="false";
             for(var i=0; i<document.frm.elements.length; i++)
               {
                 if((document.frm.elements[i].type)=="checkbox")
                   {
                     document.frm.elements[i].checked = false;
                   }
                }
        }
    }

2 个答案:

答案 0 :(得分:0)

我抓住你的代码并略微粗略地调整它并准备好但似乎工作......

    <form name='frm'>
<input type="checkbox" name="chk" value="<?php echo($arr['id']); ?>" onClick="Click()" id="CK">// all checkboxex
<input onClick="selectall()" type="checkbox" value="yes" name="c1">// one checkbox
</form>
/*function called*/
<script>
function selectall()
{
if(!document.frm.chk.checked)
{
    document.frm.chk.value="true";
    for(var i=0; i<document.frm.elements.length; i++)
    {
        if((document.frm.elements[i].type)=="checkbox")
        {
            document.frm.elements[i].checked = true;
        }
    }
}
else if(document.frm.chk.checked)
{
  document.frm.chk.value="false";
    for(var i=0; i<document.frm.elements.length; i++)
    {
        if((document.frm.elements[i].type)=="checkbox")
        {
            document.frm.elements[i].checked = false;
        }
    }
}
}
</script>     

现在,当点击第二个复选框时,它将检查/取消选中另一个复选框。不得不检查已检查的属性而不是值。

哦,就像@Gordon说更容易使用像Firebug这样的调试器来找出它无法正常工作的原因。假设您的表单被称为frm?

答案 1 :(得分:0)

使用document.form而不是document.frm