javascript - 为什么第一个复选框起作用但第二个复选框不起作用?

标签 javascript html

为什么第一个复选框有效,但第二个复选框无效,我做错了什么? :S

 <meta http-equiv="Content-type" value="text/html; charset=UTF-8" />

 <script type="text/javascript" language="javascript">
 function SetAllCheckBoxes(FormName, AreaID)
 {

 if(!document.forms[FormName])
 return;
 var objCheckBoxes = document.getElementById(AreaID).getElementsByTagName('input');
 if(!objCheckBoxes)
 return;
 var countCheckBoxes = objCheckBoxes.length;
 if(!countCheckBoxes)
 objCheckBoxes.checked = CheckValue;
 else
 for(var i = 0; i < countCheckBoxes; i++)
 objCheckBoxes[i].checked = false;
 }
 </script>


 </head>

 <div id="items">
  <input name="checkall" type="checkbox" onclick="SetAllCheckBoxes('SelectedItems','items');"><br>
 <form name="SelectedItems" action="" method="post">
 <b>Select/Unselect All</b><br>


 <input id="idGSSmodules" type="checkbox" name="GSS" >
 <label for="idmodules">GSS</label><br>
 <input type="checkbox" name="GTS" id="idGSSmodules">
 <label for="idmodules">GSS</label>
 <br>

 </div>

 <div id="itemss">
  <input name="checkall" type="checkbox" onclick="SetAllCheckBoxes('SelectedItemss','itemss');"><br>
 <form name="SelectedItemss" action="" method="post">
 <b>Select/Unselect All</b><br>


 <input id="idGSSmodules" type="checkbox" name="GSS" >
 <label for="idmodules">GSS</label><br>
 <input type="checkbox" name="GTS" id="idGSSmodules">
 <label for="idmodules">GSS</label>
 <br>

 </div>

 </form>

 </body>
 </html>

编辑**************************************************************

如何调用表单 SetAllCheckBoxes(FormName, AreaID); 上的方法换句话说,我想在不使用复选框的情况下调用该函数?

尝试过这个,但是我无法更改复选框的值

 function unCheckBoxes(FormName, AreaID) {
     if(!document.forms[FormName])
     return;
     var objCheckBoxes = document.getElementById(AreaID).getElementsByTagName('input');
     if(!objCheckBoxes)
     return;
     var countCheckBoxes = objCheckBoxes.length;

     for(var i = 0; i < countCheckBoxes; i++)
     objCheckBoxes[i].checked = false;
 }
 function checkCheckBoxes(FormName, AreaID){
     if(!document.forms[FormName])
     return;
     var objCheckBoxes = document.getElementById(AreaID).getElementsByTagName('input');
     if(!objCheckBoxes)
     return;
     var countCheckBoxes = objCheckBoxes.length;


     for(var i = 0; i < countCheckBoxes; i++)
     objCheckBoxes[i].checked = true;
 }
checkCheckBoxes('locForm','locCheckboxes');

最佳答案

输入元素中的复选框只有选中属性,使用此属性,页面上的所有复选框都将设置为与单击的复选框相同的值。

function setAllOtherCheckboxes(checkAllbox)
{
    var objCheckBoxes = document.getElementsByTagName('input');

    var chkBox = 0;
    for (chkBox in objCheckBoxes)
    {
        objCheckBoxes[chkBox].checked = checkAllbox.checked;            
    }       
}     

并在您的代码中:

<input type="checkbox" name="All" value="on"" onclick="setAllOtherCheckboxes(this);">Alles<br>

关于javascript - 为什么第一个复选框起作用但第二个复选框不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6583435/

相关文章:

javascript - 将 CSV 数据导入 HTML 表单

javascript - 透视 CSS3 不工作

javascript - 为什么暂停图标未在JS中显示

javascript - 根据值在 JavaScript 数组中添加和删除条目

javascript - 隐藏点击表上的行

javascript - 将默认文本插入 TinyMCE4 中的 'link' 插件

html - 重叠元素下方的框阴影,而不是图像附近的 float 文本

javascript - 使用 javascript 分解重复的相似 div block 的使用

javascript - 具有 next() 同级的 JQuery 多重选择器

javascript - Mongoose、express 返回空数组