С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/35: Рейтинг темы: голосов - 35, средняя оценка - 4.71
14 / 14 / 2
Регистрация: 22.09.2010
Сообщений: 227

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

07.10.2012, 14:13. Показов 7206. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru