javascript:取消选中所有复选框

标签 javascript

我在处理取消选中所有复选框时遇到问题。当我点击切换所有复选框时,它可以选中所有复选框。但是,如果我取消选中 toggle all 复选框,则什么也不会发生。并非未选中所有复选框。下面是我用 javascript 编写的代码:

<script>
var isAllCheck = false;
function togglecheckboxes(cn){

    var cbarray = document.getElementsByName(cn);
    for(var i = 0; i < cbarray.length; i++){

        if( isAllCheck == false ){
            cbarray[i].checked = "true";
            //alert( "it is false" );
        }else{ 
            cbarray[i].removeAttribute("checked");
            //alert( "it is true" );
        }
}   
isAllCheck = !isAllCheck;   
}
</script>

我什至尝试过这种编码,但还是失败了:

<script>
var isAllCheck = false;
function togglecheckboxes(cn){

    var cbarray = document.getElementsByName(cn);
    for(var i = 0; i < cbarray.length; i++){

        if( isAllCheck == false ){
            cbarray[i].checked = "true";
            //alert( "it is false" );
        }else{ 
            cbarray[i].checked = "false";
            //alert( "it is true" );
        }
}   
isAllCheck = !isAllCheck;   
}
</script>

下面是我的PHP代码,供大家引用:

echo "\t<div class='item'>
<span class='CDTitle'>{$cd['CDTitle']}</span>
<span class='CDYear'>{$cd['CDYear']}</span>
<span class='catDesc'>{$cd['catDesc']}</span>
<span class='CDPrice'>{$cd['CDPrice']}</span>
<span class='chosen'><input type='checkbox' name='cd[]' value='{$cd['CDID']}' title='{$cd['CDPrice']}' /></span>
</div>\n";

有关解决此问题的任何提示。提前致谢!

最佳答案

更新

根据评论,现代浏览器不再需要 Array.from,因此您可以这样做

document.querySelectorAll('input[type=checkbox]').forEach(el => el.checked = isAllCheck);

原始答案

在验证 isAllCheck 与您的 UI 逻辑正确之后,您可以使用简单的 vanilla-js 单行代码来完成这两项操作

Array.from(document.querySelectorAll('input[type=checkbox]')).forEach(el => el.checked = isAllCheck);

关于javascript:取消选中所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15640087/

相关文章:

javascript - 在 html 中包含 .handlebars 或 .hbs 文件

javascript - Mongodb:检查任何文档中的值是否相等

javascript - Liferay 和 ExtJS

javascript - 我的所有功能什么时候完成?

javascript - 播放div中的所有音频

javascript - 使用 JavaScript 获取所选下拉项的值的正确方法是什么?

javascript - 中心动态 Angular 形式

javascript - Mailchimp AJAX jQuery 意外 token <

javascript - JQuery 突然不工作了

javascript - 为什么数组没有显示在文本区域中?