【问题标题】:How to detect which checkboxes are checked?如何检测哪些复选框被选中?
【发布时间】:2012-11-23 14:55:25
【问题描述】:

我需要使用复选框,但没有提交按钮 - 它需要对用户已经在的页面产生影响,即包含复选框的同一页面。

基本上,我有大约 10 个复选框元素。用户选择一定数量的它们,然后单击一个按钮元素。当他们单击该元素时,我需要检测哪些复选框已被选中。用最少的代码做到这一点的最佳方法是什么?

【问题讨论】:

  • 你使用jquery还是其他js库?或者你需要在计划 javascript 代码中完成?在 jquery 中:$('selectorx :checked') 是最短的一个
  • 美学家明白了!我不在乎,可能也是。最快的,通常是 jQuery。
  • 问题被标记为jquery

标签: javascript jquery html checkbox


【解决方案1】:

让所有复选框共享同一个类。

var allChecked = $(".checkBoxClass:checked");

这将返回checkBoxClass 类中选中复选框的列表。现在您可以迭代每个元素并对其进行操作。

for(var i=0; i<allChecked.length; i++) {    
  console.log("Checkbox " + $(allChecked[i]).val().toString() + " is checked");
}

【讨论】:

  • jQuery 是神圣的。这很棒。出于某种原因,我一直担心这个。
  • 这行不通。类名和选中的属性之间有一个空格
【解决方案2】:

其中任何一个都应该有效:

$('input:checked');

$('input:checkbox:checked');

$('input:checkbox').filter(':checked');

【讨论】:

    【解决方案3】:

    试试:

        <input type="checkbox" id="1" value="one"/>
        <input type="checkbox" id="2" value="two"/>
        <input type="checkbox" id="3" value="three"/>
        <input type="button" onclick="validate()" value="Check"/>   
    
        <script type="text/javascript">
            function validate(){
                var chkArr = document.querySelectorAll('input[type="checkbox"]');
                var notChecked='';
                for(var i=0;i<chkArr.length;i++){
                    if(!chkArr[i].checked)
                        notChecked += chkArr[i].value
                }
                if(notChecked.length)
                    alert(notChecked);
            }
        </script>
    

    【讨论】:

    • 现在人们不理解 plan-js :) ,如果你在 plan-js 中给出完整的答案,那就太好了
    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2020-09-18
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多