2011-12-21 50 views
1

的顯示選擇我有這樣的例子:JS:一個<select>多

<form action="form_action.asp"> 
    <select multiple="multiple" name="example" size="10"> 
    <option value="foo">Foo</option> 
    <option value="bar">Bar</option> 
    <option value="anything">Anything</option> 
    <option value="else">Else</option> 
    </select> 
    <input type="submit" /> 
</form> 

我想顯示多少行選擇(按CTRL + CLIC)。我想我可以用一點JS來做,但我不知道如何編寫它。

有什麼想法?

+0

如果它是一個表單提交,不能你只是做它在服務器端? – EKet 2011-12-21 17:22:07

+0

(這不是我正在尋找的:目的只是實時顯示

回答

2

首先給你選擇一個ID

<select id="yourSelect" multiple="multiple" name="example" size="10"> 

然後

var numSelected = 0; 
var allOptions = document.getElementById("yourSelect"); 
for (var i = 0; i < allOptions.length; i++) 
    if (allOptions[i].selected) 
     numSelected++ 

爲了完整起見,我會提到,如果你想使用jQuery,和我不是說你應該爲這個簡單的東西,但如果你曾經這樣做,你可以這樣做

var numSelected = $("option:selected", "#yourSelect").length; 
+0

爲什麼downvote?我測試了這段代碼的兩個部分。 – 2011-12-21 17:28:46

+0

爲什麼每個人都爲每種javascript情況提供JQuery? – miqbal 2011-12-21 17:36:40

+3

@moses - 很多人使用jQuery。它使生活更愉快。我用純JavaScript回答了OP的問題,然後如果他有興趣,我給了他一個jQuery替代品。 – 2011-12-21 17:37:44

0

我GOOGLE搜索到並找到this article

var selected = new Array(); 
for (var i = 0; i < ob.options.length; i++) { 
    if (ob.options[ i ].selected) { 
     selected.push(ob.options[ i ].value); 
    } 
} 

這將創建一個Arrayselected)與選項。您可以輕鬆修改它以獲取所選項目的數量。

0

做出了example: 但核心是:

function parseSelected() { 
    var count = 0; 

    for (var i = 0; i < length; i++) { 
     if (select[ i ].selected) { 
      count++ 
     } 
    } 
    output.innerHTML = count; 
}