2011-04-08 143 views
2

我有一個表格,並希望找到,有多少個複選框已被選中?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

回答

5

一旦你有你的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對象是類似數組的)。

-1

您可以使用下面的代碼來檢查複選框的數量。

<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