如果选取状态true,
if (form.delCopID[i].checked == true)
{
    form.delCopID[i].checked = false;
}
语句置为false,然后
if (form.delCopID[i].checked == false)
{
    form.delCopID[i].checked = true;
}
又置为true,选中如果初始状态为false,第一个语句不执行,第二个语句设为true,选中两种情况结果都是选中,逻辑错误

解决方案 »

  1.   

    <input type=checkbox>1
    <input type=checkbox>1
    <input type=checkbox>1
    <input type=checkbox>1
    <br>
    <input type="button" value="全选" onclick="doCheckBox(1)">
    <input type="button" value="全不选" onclick="doCheckBox(2)">
    <input type="button" value="反选" onclick="doCheckBox(3)">
    <script>
    function doCheckBox(iType)
    {
    //1:全选;2:全不选;3:反选;
    for(iIndex=0;iIndex<document.all.length;iIndex++)
    {
    if(document.all(iIndex).type=="checkbox")
    {
    switch(iType)
    {
    case 1:document.all(iIndex).checked=true;break;
    case 2:document.all(iIndex).checked=false;break;
    case 3:{if(document.all(iIndex).checked==true){document.all(iIndex).checked=false;}else{document.all(iIndex).checked=true;}}break;
    }
    }
    }
    }
    </script>