2010-07-02 248 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