【问题标题】:Javascript toggle checkboxJavascript 切换复选框
【发布时间】:2018-07-06 06:07:03
【问题描述】:

我需要用一个功能切换所有按钮。函数需要切换文档中的所有复选框,因为我的复选框是独立的,而不是表单的一部分。

我目前有这个,但它不能正常工作。我在我的 Firefox 控制台中收到 syntax error: syntax error

    checked=false;
    function checkedAll() {
        var c = new Array();
        c = doc.getElementsByTagName('input');
        if (checked == false){
            checked = true;
        }else{
            checked = false;
        }
        for (var i = 0; i < c.length; i++){
            if (c[i].type == 'checkbox'){
                c[i].checked = checked;
            }
        }
    }

如何修复我的代码?

谢谢

【问题讨论】:

  • 你可以为上面的代码创建一个jsfiddle
  • typo.. 文档应该是文档。对不起。投票结束。
  • OP 自己找到的答案。
  • 仅供参考,您的 if 声明可以仅替换为 checked = !checked;! 字符否定您的 checked 变量。如果checked 等于true,则!checked 将等于false

标签: javascript html checkbox


【解决方案1】:

要重构的两个主要项目。首先,必须是document,而不是doc。其次,不要依赖全局,而是传入一个布尔值来确定是否选中复选框。

function checkedAll(isChecked) {
    var c = document.querySelectorAll('input[type="checkbox"]');

    for (var i = 0; i < c.length; i++){
        c[i].checked = isChecked;
    }
}

JS 小提琴: http://jsfiddle.net/Jvnfm/107/

【讨论】:

    【解决方案2】:

    您也可以对每个复选框元素执行以下操作:

        c[i].click();
    

    此版本将触发与该元素关联的任何关联事件处理程序。

    【讨论】:

    • 如果脚本正在由 onclick 事件运行,这是个坏主意
    猜你喜欢
    • 1970-01-01
    • 2013-02-25
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多