У меня есть список тегов в моем вводе с использованием шаблонов Symfony Twig следующим образом:
<select id = "choices-multiple-remove-button" class = "form-control" name = "choices-multiple-remove-button" placeholder = "Compétences" multiple>
{% for skill in skills %}
<option value = "{{skill.id}}">{{skill.label}}</option>
{% endfor %}
</select>
</div>
Здесь, в JS, я могу получить все значения, выбранные с помощью «elements[i].value»:
function hello() {
var elements = document.getElementById('choices-multiple-remove-button');
for(var i=0; i < elements.length; i++) {
console.info(elements[i].value);
console.info(elements[i].options[elements[i].selectedIndex].text);
// Throw Error //
}
}
document.getElementById("workingbutton").addEventListener("click", hello);
Здесь :
console.info(elements[i].options[elements[i].selectedIndex].text);
Не удается прочитать свойство undefined из undefined в HTMLButtonElement.hello.. Как я могу это сделать, пожалуйста? Что случилось ?
чтобы получить их текстовое содержимое, с помощью console.info(elements[i].value) распечатайте все значения, я хочу распечатать все текстовое содержимое.
Отфильтруйте выбранные параметры, а затем получите его текстовое содержимое. Чтобы сделать это, преобразуйте свойство options в массив, затем используйте метод Array#filter
для фильтрации выбранных параметров и, наконец, используйте Array#map
для извлечения текстовых значений из выбранных параметров в массив.
var element = document.getElementById('choices-multiple-remove-button');
console.info([...element.options].filter(ele => ele.selected).map(ele => ele.text));
<select id = "choices-multiple-remove-button" class = "form-control" name = "choices-multiple-remove-button" placeholder = "Compétences" multiple>
<option value = "1" selected>1</option>
<option value = "2" selected>2</option>
</select>
если выбрано несколько значений, то каково ваше ожидаемое поведение???