2012-09-23 91 views
10

我有一個多選列表,其中有多個選項,我想統計用戶選擇的選項數。統計多選框中的選擇數

如何使用java腳本來做到這一點?

我嘗試以下,但它並沒有爲我工作:提前

var x = document.getElementById("preference").count; 

感謝。

+0

> var x = document.getElementById(「preference」)。count; – coolmego

回答

21

假設foo是select的id。

如果使用正常javasript:

var options = document.getElementById('foo').options, count = 0; 
for (var i=0; i < options.length; i++) { 
    if (options[i].selected) count++; 
} 

如果你使用jQuery:

var count = $('#foo option:selected').length; 
+0

thankyou,它的工作鏈很好。是否有任何屬性可以檢查選擇的數量而不是使用for循環,因爲我們在「複選框」中使用.checked屬性可以使用。 – coolmego

+0

@coolmego不,沒有這樣的財產。對於'checkbox',是的,使用'checked'屬性。 – xdazz

+1

你可以建議從基礎開始的JavaScript的一個很好的教程。 – coolmego

1

使用:selected選擇,就像這樣:

$('#example option:selected').length; 
2

你可以試試這個讓多個選擇框用戶選擇的選項數量及其選擇的名稱。試試這個鏈接http://jsfiddle.net/N6YK8/8/

function getCount(){ 
      var comboBoxes = document.querySelectorAll("select"); 
      var selected = []; 
      for(var i=0,len=comboBoxes.length;i<len;i++){ 
        var combo = comboBoxes[i]; 
        var options = combo.children; 
        for(var j=0,length=options.length;j<length;j++){ 
         var option = options[j]; 
         if(option.selected){ 
          selected.push(option.text); 
         } 
        } 
      } 
      alert("Selected Options '" + selected + "' Total Count "+ selected.length); 
     } 
0

如果< IE8是不是一個問題,你可以這樣做document.querySelectorAll("option:checked")一個班輪讓所有選定的選項。

-1
function SelectPage(elem) 
{ 
    alert(elem); 
} 
<select id="page" name="section" onChange="SelectPage(this);" id="num"> 
    <option value="">Select Section</option> 
    <option value="1">Page-1</option> 
    <option value="2">Page-2</option> 
    <option value="3">Page-3</option> 
    <option value="4">Page-4</option> 
    <option value="5">Page-5</option> 
</select> 
+0

你也可以在你的函數中使用這個 'var len = docment.getElementById(「num」)。options; alert(「hello」+ len.length);' –