Получение выбранных значений в множественном выборе Materialize CSS с использованием JavaScript

Я использую множественный выбор Materialize CSS в форме для выбора нескольких значений. Пользовательский интерфейс работает нормально, но я не смог найти способ получить все выбранные значения. Я использовал обработчик события onChange для получения значений. Однако вместо массива выбранных значений возвращается только первое выбранное значение в списке.

Кто-нибудь может объяснить, как это сделать с помощью JavaScript для простого множественного выбора, как показано ниже? (Не с помощью jQuery)

      <select id='mySelect' multiple>
          <option value="1">Option 1</option>
          <option value="2">Option 2</option>
          <option value="3">Option 3</option>
      </select>

person vinu payyoli    schedule 18.10.2020    source источник
comment
Я не смог найти способ получить все выбранные значения. Что вы пробовали и почему это не сработало?   -  person GalaxyCat105    schedule 18.10.2020
comment
Я использовал функцию обработчика onChange для получения значений. Однако вместо массива выбранных значений возвращается только первое выбранное значение в списке.   -  person vinu payyoli    schedule 18.10.2020
comment
Пожалуйста, отредактируйте свой вопрос, чтобы включить это.   -  person GalaxyCat105    schedule 18.10.2020


Ответы (1)


Получить выбранное можно таким образом:

HTML:

<select multiple id="option-select">
   <option value="" disabled selected>Choose your option</option>
   <option value="1">Option 1</option>
   <option value="2">Option 2</option>
   <option value="3">Option 3</option>
</select>
<label>Materialize Multiple Select</label>

js

document.addEventListener("DOMContentLoaded", function () {
  const selects = document.querySelector("select");
  const instances = M.FormSelect.init(selects, {});
  const selectOption = document.querySelector("#option-select");
    
  selectOption.addEventListener("change", function () {
    const instance = M.FormSelect.getInstance(selectOption);
    const selectedValues = instance.getSelectedValues();
    console.log(selectedValues);
  });
});
person lissettdm    schedule 18.10.2020