Ответ 1
document.querySelectorAll('option:checked')
Работает даже на IE9;)
Интересно, возможно ли в Javascript получить выбранные в данный момент параметры в поле <select multiple>
, используя API Selctors, а не "глупую" итерацию по всем параметрам.
select.querySelectorAll('option[selected="selected"]')
возвращает только те параметры, которые были отмечены как предварительно выбранные в исходном HTML, что не то, что я ищу. Любые идеи?
document.querySelectorAll('option:checked')
Работает даже на IE9;)
Я также испытал вашу проблему, я чувствую, что это связано с тем, что JavaScript не распознает изменения в DOM.
Вот решение:
document.getElementById('test').onclick = function () {
var select = document.getElementById('select');
var options = getSelectedOptions(select);
console.log(options);
};
function getSelectedOptions(select) {
var result = [];
var options = select.getElementsByTagName('option');
for (var i = 0; i < options.length; i++) {
if (options[i].selected)
result.push(options[i]);
};
return result;
}