JS:显示<select> multiple </select>的选择

时间:2011-12-21 17:18:49

标签: javascript html forms

我有这个例子:

<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来做,但我不知道如何写它。

有什么想法吗?

3 个答案:

答案 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;

答案 1 :(得分: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)。您可以轻松更改它以获取所选项目的数量。

答案 2 :(得分:0)

制作example: 但核心是:

function parseSelected() {
    var count = 0;

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