На веб-странице находится выпадающий список с возможностью одновременного выбора нескольких опций. Необходимо отслеживать, какие именно опции были выбраны.

Опубликовал: Tuesday, June 4, 2024 в категории jQuery, Подборка рецептов | Пока нет комментариев

Решение

Для решения задачи применим фильтр :selected (листинг 1.8.3).

Листинг1 .8 .3 . Использование фильтра :selected

Обсуждение

В листинге 1.8.3 HTML-разметка очень простая — элемент select с возможностью выбора сразу нескольких опций, две из которых уже заданы по умолчанию, и пустой элемент div, в который мы будем вставлять содержимое всех выбранных опций.

Посмотрим на JavaScript-код. Первое, что мы делаем, — находим элемент select и связываем с ним событие change, при наступлении которого будет вызвана callbackфункция. Каждый раз при вызове функции в переменную str записывается пустая строка. Затем в элементе select будут обнаружены все выбранные опции. Это мы проделаем с помощью фильтра :selected. Поскольку таких опций может быть несколько, потребуется метод each(), который позволит применить функцию, указанную в качестве его аргумента, к каждому выбранному элементу. Таким образом, мы получаем возможность сформировать в переменной str строку, содержащую текст всех выбранных значений списка. После завершения итераций мы вставляем текст готовой строки в элемент div. И последнее, что нам осталось сделать, —

с помощью вызова метода change() без передачи ему аргументов, имитировать событие change при загрузке страницы.

Источник: Самков Г. А. jQuery. Сборник рецептов. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2011. — 416 с.: ил. + CD-ROM — (Профессиональное программирование)

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *