14 / 14 / 2
Регистрация: 22.09.2010
Сообщений: 227

Отслеживать change нескольких select

07.10.2012, 14:13. Показов 7243. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет.

Задача: в зависимости от выбранного аэропорта отображать/скрывать селектор терминала, причем несколько раз на одной странице.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<div id="start" class="airport">
    <select id="start-airport">
        <option>Внуково</option>
        <option>Домодедово</option>
        <option>Шереметьево</option>
    </select>
    <select id="start-terminal" style="display: none;">
        <option>Терминал B</option>
        <option>Терминал C</option>
        <option>Терминал D</option>
        <option>Терминал E</option>
        <option>Терминал F</option>
    </select>
</div>
 
<div id="abc" class="airport">
    <select id="abc-airport">
        <option>Внуково</option>
        <option>Домодедово</option>
        <option>Шереметьево</option>
    </select>
    <select id="abc-terminal" style="display: none;">
        <option>Терминал B</option>
        <option>Терминал C</option>
        <option>Терминал D</option>
        <option>Терминал E</option>
        <option>Терминал F</option>
    </select>
</div>
 
<div id="finish" class="airport">
    <select id="finish-airport">
        <option>Внуково</option>
        <option>Домодедово</option>
        <option>Шереметьево</option>
    </select>
    <select id="finish-terminal" style="display: none;">
        <option>Терминал B</option>
        <option>Терминал C</option>
        <option>Терминал D</option>
        <option>Терминал E</option>
        <option>Терминал F</option>
    </select>
</div>

Так не работает. Вернее работает, но скрывается/отображается только селект в первом диве.

JavaScript
1
2
3
4
5
6
7
$('.airport select:nth-child(1)').live('change', function () {
    if ($('.airport select:nth-child(1)').val() == 'Шереметьево') {
        $('.airport select:nth-child(2)').css('display', '');
    } else {
        $('.airport select:nth-child(2)').css('display', 'none');
    }
});
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2012, 14:13
Ответы с готовыми решениями:

Установка событий в цикле (установка change на select при обходе массива DIV)
Нужно обходя дивы (DIV) навесить chang на select срабатывает только на первом диве остальные не реагируют $(...

работа с select: это нужно делать через $().val(); или через .change()?
Есть такая форма на сайте. Если значение поля &quot;Тип организации куда нужна справка&quot; любое кроме &quot;другой тип&quot;, то поле...

Отслеживание нескольких select
Доброго времени суток. На странице имеется несколько select с id=&quot;verificationPhone&quot; Подскажите как получить option который выбрал...

6
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
07.10.2012, 15:14
Цитата Сообщение от Wir2al Посмотреть сообщение
Задача: в зависимости от выбранного аэропорта отображать/скрывать селектор терминала, причем несколько раз на одной странице.
А детальнее объяснить можете? Выбрал я в самом верхнем "Внуково", что должно скрыться, а что показаться? Из вашего поста и скрипта ничего не понять.
0
14 / 14 / 2
Регистрация: 22.09.2010
Сообщений: 227
07.10.2012, 15:39  [ТС]
Soldado, http://podorozhny.ru/devcenter/sandbox/select.html
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
07.10.2012, 15:51
Я увидел, что есть, а что должно быть? Уточняющая переписка утомляет.

Сейчас терминалы появляются только если выбран Шереметьево, а когда остальные то терминалов нет....
Почему Вы не написали, что хотите получить?
Очень трудно ответить на вопрос: "Сейчас всё работает не так, а как сделать чтобы было как я хочу?"

Вам нужен универсальный скрипт, чтобы для всех блоков работал как для первого?

Задача то плёвая, если раскажите как должно быть!


id- индивидуальный идентификатор, не может быть один и тот же у нескольких элементов
1
14 / 14 / 2
Регистрация: 22.09.2010
Сообщений: 227
07.10.2012, 16:00  [ТС]
Soldado, обновите страницу, в тот момент, когда вы смотрели, я ещё не успел дописать её (id был один на всех после копипаста блоков).

Попробую объяснить ещё разочек суть задачи.
На странице есть n-ное количество дивов, каждый из которых состоит из двух селекторов.
Первый селектор - аэропорт. Второй - терминал. Второй селектор отображать, только если выбран аэропорт Шереметьево.
Собственно этот функционал я уже сделал, но для одного блока:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<select id="airport">
    <option>Внуково</option>
    <option>Домодедово</option>
    <option>Шереметьево</option>
</select>
<select id="terminal" style="display: none;">
    <option>Терминал B</option>
    <option>Терминал C</option>
    <option>Терминал D</option>
    <option>Терминал E</option>
    <option>Терминал F</option>
</select>
JavaScript
1
2
3
4
5
6
7
$('#airport').live('change', function () {
    if ($('#airport').val() == 'Шереметьево') {
        $('#terminal').css('display', '');
    } else {
        $('#terminal').css('display', 'none');
    }
});
Блоки — это точки маршрута, редактируемого пользователем на странице. Точек может быть сколько угодно (минимум 2), добавляются нажатием на кнопку. Отслеживать с помощью jquery live естественно нужно все селекторы аэропортов. Вопрос: как это осуществить? Дублировать код выше добавив id блокам и указывая их в скриптах?

Добавлено через 1 минуту
Ospin, кстати, у нас вопросы одинаковые, мне тоже нужно производить действия для множества элементов, имеющих один класс.
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
07.10.2012, 16:17
Меняйте всё на class и используйте относительный поиск. А именно отсчёт открываемого селекта ведите от выбранного селекта, вот так (скрипт записать между тегами head, после подключения библиотеки):
JavaScript
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
$(document).ready(function(){
            $('.airport').live('change', function () {
                if ($(this).val() == 'Шереметьево') {
                   $(this).next('.terminal').css('display', '');
                } else {
                    $(this).next('.terminal').css('display', 'none');
                }
            });
 });/*end  ready*/          
        </script>

Демо-страница
1
14 / 14 / 2
Регистрация: 22.09.2010
Сообщений: 227
07.10.2012, 16:18  [ТС]
Soldado, да, все работает, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2012, 16:18
Помогаю со студенческими работами здесь

Select выбор нескольких пунктов
Всем привет! Кто знает подскажите гайд или плагин какой нить. Задача: Есть селект с списком товара. Необходимо когда юзер выбирает...

Нужно связать select в нескольких div
У меня сейчас есть такая страничка: Три &lt;select&gt;, каждый из которых в своем &lt;div&gt; (примечание: кол-во select'ов растет по кнопке...

Вычисление определенного числа, в нескольких select
Привет, всем! Помогите пожалуйста :gsorry: Есть HTML разметка. В ol -&gt; li содержится два элемента: intut для ввода ссылки и...

Select Line. Change one of textBoxes. button return items to his Line
А как можно в` txtBox2 менять на пример` 1.09 на 2.7 и` press button так, что бы в` 2 Line в` 2 ColumnHeaderе` 1.09 стал 2.7 ?

DataGrid focus change, selection change
Всем привет! Как вызвать некоторую функцию, при изменении фокуса ячеки грида. При этом эта функция не должна вызываться при добавлении...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru