Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
3 / 3 / 0
Регистрация: 07.05.2019
Сообщений: 18

Получить id всех выбранных option в select multiple

25.07.2020, 20:30. Показов 5385. Ответов 7

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Подскажите пожалуйста как перебрать select и получить id всех выбранных option?(Используя jquery или чистый js)
P.S Нужно тк у каждого option id-это id товара с этим названием.
Select следующего вида:
HTML5
1
2
3
4
5
6
7
8
9
10
<select>
<optgroup label="Группа1">
 <option id="3">Товар 1</option>
 <option  id="10">Товар 2</option>
</optgroup>
<optgroup label="Группа1">
 <option  id="11">Товар 1</option>
 <option  id="12">Товар 2</option>
</optgroup>
</select>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.07.2020, 20:30
Ответы с готовыми решениями:

Проверка выбранных <option> в <select multiple>
Всем привет, есть такой селект: &lt;select id=&quot;Materials&quot; size=&quot;6&quot; multiple&gt; &lt;option style=&quot;background-color:#333;color:#fff;&quot;...

Построить select multiple, где несколько option selected
Здравствуйте! В БД в некоторую таблицу в ячейку записаны значения value ($stat_vals) через запятую, например 20,21,24 Есть другая...

получить все записи из <select multiple='multiple'
как через JQUERY получить все записи из &lt;select multiple='multiple'

7
164 / 100 / 42
Регистрация: 23.06.2020
Сообщений: 228
25.07.2020, 22:27
Piga,



PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<select>
<optgroup label="Группа1">
 <option id="3">Товар 1</option>
 <option  id="10">Товар 2</option>
</optgroup>
<optgroup label="Группа1">
 <option  id="11">Товар 1</option>
 <option  id="12">Товар 2</option>
</optgroup>
</select>
<script>
var sel = document.getElementsByTagName('select');  
 
sel[0].onchange = function () {  
  var id=this.options[this.selectedIndex].id;  
  alert (id);  
 }; 
  </script>
1
3 / 3 / 0
Регистрация: 07.05.2019
Сообщений: 18
26.07.2020, 00:37  [ТС]
Решение работает, но в моем случае не подходит, поскольку много селектов с одинаковым класом, у меня настроено событие при нажатии на кнопку. Суть такова, есть селект с классом условно "select_items", он с множественным выбором, это не учитывается в написанном вами коде, так что нужно после нажатия на кнопку получить все id выбранных option в select
0
164 / 100 / 42
Регистрация: 23.06.2020
Сообщений: 228
26.07.2020, 01:40
Лучший ответ Сообщение было отмечено Piga как решение

Решение

Цитата Сообщение от Piga Посмотреть сообщение
поскольку много селектов с одинаковым класом, у меня настроено событие при нажатии на кнопку.
Шта?
Что вам помешало упомянуть об этом в первом сообщении?

JavaScript
1
2
3
4
5
6
7
8
9
10
btn_get.addEventListener('click', function() {
    var sel = document.querySelectorAll('.select_items');
    var idArr = [], id="0"; 
         for (let i = 0; i < sel.length; i++) {
        id = sel[i].options[sel[i].selectedIndex].id;
        idArr.push(id);
            }
          alert(idArr); 
            
});
Добавлено через 8 минут
Кнопка
HTML5
1
<button id="btn_get" >Получить все id</button>
1
3 / 3 / 0
Регистрация: 07.05.2019
Сообщений: 18
26.07.2020, 02:34  [ТС]
Забыл. Спасибо большое за помощь!
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
26.07.2020, 11:39
Условия противоречат друг другу:
Цитата Сообщение от Piga Посмотреть сообщение
поскольку много селектов с одинаковым класом, у меня настроено событие при нажатии на кнопку.
Цитата Сообщение от Piga Посмотреть сообщение
Суть такова, есть селект с классом условно "select_items", он с множественным выбором
Плюс в изначальном вопросе в select отсутствует множественный выбор.

Для единственного <select multiple>:
HTML5
1
2
3
4
5
6
7
8
9
10
11
    <select class="select_items" multiple>
        <optgroup label="Группа1">
            <option id="3">Товар 1</option>
            <option id="10">Товар 2</option>
        </optgroup>
        <optgroup label="Группа1">
            <option id="11">Товар 1</option>
            <option id="12">Товар 2</option>
        </optgroup>
    </select>
    <button id="btn_get">Получить все id</button>
Обработчик кнопки для современных браузеров:
JavaScript
1
2
3
4
5
document.getElementById("btn_get").onclick = () => {
    let array = [...document.querySelector(".select_items").selectedOptions]
        .map(e => e.id);
    alert(array);
};
Вариант для браузеров 2017 года и древнее (компилируется автоматически из современного синтаксиса)
JavaScript
1
2
3
4
5
6
7
8
9
10
11
var __spreadArrays = (this && this.__spreadArrays) || function () {
    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
    for (var r = Array(s), k = 0, i = 0; i < il; i++)
        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
            r[k] = a[j];
    return r;
};
document.getElementById("btn_get").onclick = function () {
    var array = __spreadArrays(document.querySelector(".select_items").selectedOptions).map(function (e) { return e.id; });
    alert(array);
};

-------------
Вариант для нескольких <select>, тут уже неважно мульти или не мульти.
В jQuery оказалось на удивление просто сделать:
JavaScript
1
2
3
4
5
6
7
$("#btn_get").click(function () {
    var array = $(".select_items").map((function (i, e) {
        return $(e.selectedOptions)
            .map(function (i, e) { return e.id; }).toArray();
    })).toArray();
    alert(array);
});
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
27.07.2020, 10:01
и никто не упомянул
Идентификатор должен обязательно начинаться с латинского символа и может содержать в себе латинские буквы (A–Z, a–z), цифры (0–9), символ дефиса (-) и подчеркивания (_). Использование русских букв в именах идентификатора недопустимо.
http://htmlbook.ru/html/attr/id
1
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
27.07.2020, 11:00
Цитата Сообщение от amr-now Посмотреть сообщение
В jQuery оказалось на удивление просто сделать
jQuery(":selected")
JavaScript
1
2
3
4
5
6
7
  $("#btn_get").click(function() {
    const ids = $('.select_items :selected')
      .map((i, el) => el.id)
      .toArray();
 
    console.log(ids);
  });
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.07.2020, 11:00
Помогаю со студенческими работами здесь

Получение значений выбранных option в select
Доброго времени суток. Имеется такой select &lt;?php $res = mysql_query(&quot;SELECT DISTINCT course FROM...

Выбрать option в select при выборе другого option в другом select
Всем добрый привет! Подскажите, пожалуйста, как реализовать вот какую штуку: необходимо, чтобы при выборе option с value=0 в select с...

Получить значение option ( select )
Hi all, Если option value равно значению сделать его selected? как такое провернуть?)

Как получить значение value из select option
Имеется вот такой вот скрипт: &lt;form action=&quot;&lt;?=$_SERVER?&gt;&quot; method=&quot;post&quot;&gt; &lt;select name=&quot;sel&quot;&gt; &lt;option...

Как получить значение option из списка select?
Доброго времени суток! Подскажите, пожалуйста, как получить результат выбора со страницы в контроллер? Значение поля input получаю по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru