JS: отображать выборки, кратной <select> - PullRequest
1 голос
/ 21 декабря 2011

У меня есть этот пример:

<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 + клики).Я думаю, что я могу сделать это с небольшим количеством JS, но я не знаю, как это написать.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 21 декабря 2011

Сначала укажите свой идентификатор

<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 голосов
/ 21 декабря 2011

Сделано пример : но ядро ​​это:

function parseSelected() {
    var count = 0;

    for ( var i = 0; i < length; i++ ) {
        if ( select[ i ].selected ) {
            count++
        }
    }
    output.innerHTML = count;
}
0 голосов
/ 21 декабря 2011

Я гуглил и нашел эту статью

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

Это создаст Array (selected) с параметрами. Вы можете легко изменить его, чтобы получить количество выбранных элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...