2010-07-02 295 views
0

以下是我的代码,可以告诉我什么是错误的。选择所有复选框由一个复选框不工作

<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; 
        } 
       } 
     } 
    } 
+0

尝试使用alert();在不同的点看到哪些块javascript输入 – JochenJung 2010-07-02 07:20:18

+2

@Jochen一个JavaScript调试器是一个更合适的工具 – Gordon 2010-07-02 07:23:19

+0

它会更好,如果使用jquery..it更简单...不需要长脚本... – klox 2010-07-02 07:33:53

回答

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?

0

使用document.form不是document.frm