计算 HTML 中选中复选框的数量

Posted

技术标签:

【中文标题】计算 HTML 中选中复选框的数量【英文标题】:Count the number of checked checkboxes in HTML 【发布时间】:2014-05-21 05:25:47 【问题描述】:

所以基本上我想计算被勾选的复选框的数量。我让我的代码达到成功计数的程度,但我想输入一个警报,显示勾选的复选框数量,代码执行此操作但不显示总计数,每次刷新都会增加总数。我只想知道如何显示总数。

当单击单选按钮“是”时,它应该显示总数。

<br />Apples
<input type="checkbox" name="fruit" />Oranges
<input type="checkbox" name="fruit" />Mango
<input type="checkbox" name="fruit" />
<br />Yes
<input type="radio" name="yesorno" id="yes" onchange="checkboxes()"
function checkboxes()
    var inputElems = document.getElementsByTagName("input"),
    count = 0;
    for (var i=0; i<inputElems.length; i++) 
    if (inputElems[i].type === "checkbox" && inputElems[i].checked === true)
        count++;
        alert(count);
    

【问题讨论】:

javascript count checked checkbox的可能重复 不同的问题@JohnConde document.querySelectorAll('input[type="checkbox"]:checked').length 【参考方案1】:

这应该可以解决问题:

alert(document.querySelectorAll('input[type="checkbox"]:checked').length);

【讨论】:

alert(document.querySelectorAll('input:checked').length-1); 减一没有意义。 length 返回被勾选的复选框的数量(即数组的长度) 我把你的代码行放在 JSFiddle 中,它给了我打勾的方框 + 1 JSFiddle 它正在计算选中的复选框和单选按钮。由于您只想计算复选框,请使用alert(document.querySelectorAll('input[type="checkbox"]:checked').length); 太聪明了!谢谢【参考方案2】:

用 jquery 试试这个

方法一:

alert($('.checkbox_class_here :checked').size());

方法二:

alert($('input[name=checkbox_name]').attr('checked'));

方法:3

alert($(":checkbox:checked").length);

【讨论】:

是的需要javascript 虽然这 Javascript,但从技术上讲,用户没有提到JQuery。你不应该假设人们正在使用他们没有提到的库。 对于遇到这个问题并正在使用 jQuery 的人来说,这仍然是一个有用的答案。如果OP没有提到它并不重要,答案是'尝试使用......' PS,对于方法 1,:checked 和类名之间不需要空格。 在第一种方法中使用 length 代替 size() Deprecated【参考方案3】:

试试这个代码

 <br />Apples
                <input type="checkbox" name="fruit" checked/>Oranges
                <input type="checkbox" name="fruit" />Mango
                <input type="checkbox" name="fruit" />

                <br />Yes
<input type="radio" name="yesorno" id="yes" onClick="checkboxes();" />

Javascript

     function checkboxes()
      
       var inputElems = document.getElementsByTagName("input"),
        count = 0;

        for (var i=0; i<inputElems.length; i++)        
           if (inputElems[i].type == "checkbox" && inputElems[i].checked == true)
              count++;
              alert(count);
           

        
     

FIDDLE DEMO

【讨论】:

这就是我所没有的,除了“onClick”的变化。如果勾选了 3 个复选框,我正在尝试阻止弹出 3 条警报消息。 @roro alert(count); 放在循环之外。【参考方案4】:

感谢马龙·伯纳德斯。 alert(document.querySelectorAll('input[type="checkbox"]:checked').length);

如果您有多个表单,每个表单具有不同的复选框名称,则上述代码将计算所有表单中的所有复选框。

要克服这个问题,您可以将其修改为按名称隔离。

var le = document.querySelectorAll('input[name="chkboxes[]"]:checked').length;

【讨论】:

SyntaxError: 'input[name="foo"]:checked' 不是有效的选择器 (Firefox 57)【参考方案5】:

最初的代码几乎是正确的。线 警报(计数); 是在错误的地方。它应该出现在第二个右大括号之后,如下所示:-

 function checkboxes()
  
   var inputElems = document.getElementsByTagName("input"),
    count = 0;

    for (var i=0; i<inputElems.length; i++)        
       if (inputElems[i].type == "checkbox" && inputElems[i].checked == true)
          count++;
       
    
    alert(count);
 

在错误的地方,每个复选框都会给你一条警告消息。

【讨论】:

【参考方案6】:
var checkboxes = document.getElementsByName("fruit");
for(i = 0 ; i<checkboxes.length; i++)

if(checkboxes[i].checked==0)checkboxes.splice(i,1);

alert("Number of checked checkboxes: "+checkboxes.length);

【讨论】:

【参考方案7】:

function checkboxes()
    var inputs = document.getElementsByTagName("input");
    var inputObj;
  var selectedCount = 0;
    for(var count1 = 0;count1<inputs.length;count1++) 
        inputObj = inputs[count1];
        var type = inputObj.getAttribute("type");
        if (type == 'checkbox' && inputObj.checked) 
            selectedCount++;
        
    
  alert(selectedCount);
<html>
  <body>Fruits
  <br />
  <input type="checkbox" name="fruit" checked/>Oranges
  <input type="checkbox" name="fruit" />Mango
  <input type="checkbox" name="fruit" />Apple
  <br />Yes
  <input type="radio" name="yesorno" id="yes"       onClick="checkboxes();"/>
  </body>
</html>

【讨论】:

以上是关于计算 HTML 中选中复选框的数量的主要内容,如果未能解决你的问题,请参考以下文章

计算gridview中选中的复选框

计算 React.js 中选中的复选框

计算使用 jquery 检查的 html 复选框的数量

在 HTML5 中选中和取消选中复选框的正确方法是啥?

如果未选中复选框,如何提交 0,如果在 HTML 中选中复选框,如何提交 1 [重复]

如何知道是不是使用java在selenium中选中了一个复选框[重复]