Javascript:取得总检查复选框

问题描述:

我有一个表格,并希望找到,有多少个复选框已被选中?Javascript:取得总检查复选框

我复选框ID将是相同的,event_id和名称将是这样的:data[Noncompetitor][is_black][4]

我哪有?

尽快通知我。

谢谢!

+0

发布一些HTML和一些JS尝试:) – Khez 2011-04-08 12:16:43

+0

元素的ID必须是唯一的。对所有复选框使用相同的ID不起作用。 – Guffa 2011-04-08 12:18:29

+1

*“我的复选框ID相同,'event_id'”*然后你会遇到麻烦。文档中的'id'值** [必须唯一](http://www.w3.org/TR/html5/elements.html#the-id-attribute)**。 – 2011-04-08 12:18:32

一旦你有你的form's element参考,可以很容易地遍历元素:

function countChecked(form) { 
    var index, element; 
    for (index = 0; index < form.elements.length; ++index) { 
     element = form.elements[index]; 
     // You may want to check `element.name` here as well 
     if (element.type.toUpperCase() == "CHECKBOX" && element.checked) { 
      ++checked; 
     } 
    } 
    return checked; 
} 

有很多方法去表单元素的引用。例如,请填写表格id并使用document.getElementById

所以,如果你的窗体的id是“富”,例如,则:

var checkedCount = countChecked(document.getElementById('foo')); 

题外话:很多这方面的东西,可以使用取得了很多容易库,如jQuery,Prototype,YUI,Closureany of several others,以平滑浏览器差异,为您提供丰富的方式来通过CSS选择器遍历元素等。

var checkedCount = $("#foo :checkbox:checked").length; 

...它说,“找到所有经检查发现是的Elemen twith的id‘富’的后代复选框”

例如,上面可以使用jQuery这样写然后使用生成的jQuery对象的长度(jQuery对象是类似数组的)。

您可以使用下面的代码来检查复选框的数量。

<html> 
    <head> 
     <script type="text/javascript"> 
     var index = 0; 
     function check() 
     { 
      index++; 
      document.getElementById('text').innerHTML = "You have Checked \t"+index+"\t checkboxes"; 
     } 
     </script> 
    </head> 
    <body> 
    <input type="checkbox" onclick="check()"/> 
    <input type="checkbox" onclick="check()"/> 
    <input type="checkbox" onclick="check()"/> 
    <input type="checkbox" onclick="check()"/> 
    <input type="checkbox" onclick="check()"/> 
    <input type="checkbox" onclick="check()"/> 
    <div id="text"></div> 
    </body> 
    </html> 
+1

什么时候它被取消选中? – dogmatic69 2011-04-08 12:48:45