2011-12-21 6 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

+0

(これは私が探していたものではありません:

答えて

2

まず、あなたの完全性のために

<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++ 

IDを選択与える、私はあなたが今までのjQueryを使用したい場合はことを言及だろう、と私はあなたがすべきとは言いませんよこの単純な何かが、あなたが今まで行った場合、あなたは

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

なぜdownvoteですか?私はこのコードの両方のセクションをテストしました。 –

+0

なぜ皆がJavascriptのあらゆる状況でJQueryを提供していますか? – miqbal

+3

@moses - 多くの人がjQueryを使用しています。それは人生をより楽しくさせます。純粋なJavaScriptを使用してOPの質問に答えた後、興味があれば彼にjQueryの代替案を与えました。 –

0

でこれを行うことができ、私はをGoogleで検索し、見つかりましたオプションでArrayselected)を作成します

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

。選択した項目の数を簡単に変更することができます。

0

example製: をしかし、コアは次のとおりです。

function parseSelected() { 
    var count = 0; 

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