Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2019, 00:09   #1
fromthemoon
Пользователь
 
Регистрация: 17.06.2019
Сообщений: 29
По умолчанию Зависимый селект

Уважаемые участники форума, прошу помочь!

Имеется вот такая конструкция - https://jsfiddle.net/fromthemoon/gomstx74/

Необходимо, чтобы при выборе в первом селекте выводилась соответствующая optgroup'а. Каким образом можно скрыть не нужные виды покрытий во втором селекте, без изменения HTML-разметки, прям вот как есть. Заранее благодарю за помощь!
fromthemoon вне форума Ответить с цитированием
Старый 17.06.2019, 01:06   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Установите всем опшнГруппам свойство display: none по умолчанию.
Когда выбираете в первом селекте какое-то значение, вам надо найти опшнГрупп, у которого лейбл совпадает с выбранным значением в первом селекте. У найденного опшнГруппа ставите display: block, при этом запоминаете ссылку на этот групп в какой-то переменной. Когда выбираете другое значение, запомненному в переменной группу ставите снова дисплей нон, а потом повторяете все действия, что я описал.
Вадим Мошев вне форума Ответить с цитированием
Старый 17.06.2019, 10:52   #3
fromthemoon
Пользователь
 
Регистрация: 17.06.2019
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Установите всем опшнГруппам свойство display: none по умолчанию.
Я мысленно понимаю как это должно в процессе работать, но к своему сожалению не имею навыков в написании кода, синтаксис Javascript для меня остается дремучим лесом. Понимаю, что следует изучить материал, но нужно сделать данную причуду быстрее, т.е. на изучение нет времени, потому брожу по форумам и терроризирую всех своими глупыми вопросами

Последний раз редактировалось fromthemoon; 17.06.2019 в 16:23.
fromthemoon вне форума Ответить с цитированием
Старый 17.06.2019, 22:02   #4
fromthemoon
Пользователь
 
Регистрация: 17.06.2019
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Установите всем опшнГруппам свойство display: none по умолчанию.
Когда выбираете в первом селекте какое-то значение, вам надо найти опшнГрупп, у которого лейбл совпадает с выбранным значением в первом селекте. У найденного опшнГруппа ставите display: block, при этом запоминаете ссылку на этот групп в какой-то переменной. Когда выбираете другое значение, запомненному в переменной группу ставите снова дисплей нон, а потом повторяете все действия, что я описал.
https://jsfiddle.net/fromthemoon/c9jkrqbz/3/ - попытался сам написать, но теперь они показываются все разом, как это исправить?
fromthemoon вне форума Ответить с цитированием
Старый 18.06.2019, 18:06   #5
web-coder
Пользователь
 
Аватар для web-coder
 
Регистрация: 27.05.2019
Сообщений: 70
По умолчанию

Цитата:
попытался сам написать, но теперь они показываются все разом, как это исправить?
1. Уберите лишние class="active" (для всех optgroup, кроме первой)
2. Если вы подключили jquery, то логику переключателя можно сделать так
Код:
$(document).on('change', '#pokr', function(){
	var pokr = $(this).val();
	$('#colors optgroup.active').removeClass('active');
	$('#colors optgroup[label="'+pokr+'"]').addClass('active');
});
Лучший сервис выбора хостинга по параметрам.
Более 600 тарифов. Есть промокоды!
web-coder вне форума Ответить с цитированием
Старый 18.06.2019, 19:54   #6
fromthemoon
Пользователь
 
Регистрация: 17.06.2019
Сообщений: 29
По умолчанию

Цитата:
Сообщение от web-coder Посмотреть сообщение
1. Уберите лишние class="active" (для всех optgroup, кроме первой)
2. Если вы подключили jquery, то логику переключателя можно сделать так
Код:
$(document).on('change', '#pokr', function(){
	var pokr = $(this).val();
	$('#colors optgroup.active').removeClass('active');
	$('#colors optgroup[label="'+pokr+'"]').addClass('active');
});
Круто, спасибо, но пропали иконки, которые были там в виде изображений, простите за тупизм
fromthemoon вне форума Ответить с цитированием
Старый 18.06.2019, 20:22   #7
web-coder
Пользователь
 
Аватар для web-coder
 
Регистрация: 27.05.2019
Сообщений: 70
По умолчанию

Цитата:
Сообщение от fromthemoon Посмотреть сообщение
пропали иконки, которые были там в виде изображений, простите за тупизм
Иконок там и не было.
Вижу вы пытались их добавить таким образом
Код:
<option value="Белая" class="icon-acrylic-white">Белая</option>
Код:
.icon-acrylic-white {
    background: url('https://i.ibb.co/dMJG3bs/acrylic-white.png') no-repeat;
    background-size: 20px;
    padding-left: 30px;
    background-position: 3px 1px;
}
Но проблема в том, что списки нельзя так кастомизировать.
Для этого есть специальные плагины. Например https://select2.org
Лучший сервис выбора хостинга по параметрам.
Более 600 тарифов. Есть промокоды!
web-coder вне форума Ответить с цитированием
Старый 18.06.2019, 20:27   #8
fromthemoon
Пользователь
 
Регистрация: 17.06.2019
Сообщений: 29
По умолчанию

Цитата:
Сообщение от web-coder Посмотреть сообщение
Для этого есть специальные плагины. Например https://select2.org
К сожалению кастомы нельзя использовать, это конструктор и там вся разметка завязана на своих скриптах.

P.S. Одной и главной ошибкой было создание этого сайта на конструкторе
fromthemoon вне форума Ответить с цитированием
Старый 18.06.2019, 20:34   #9
web-coder
Пользователь
 
Аватар для web-coder
 
Регистрация: 27.05.2019
Сообщений: 70
По умолчанию

Цитата:
Сообщение от fromthemoon Посмотреть сообщение
К сожалению кастомы нельзя использовать
Значит вставить иконки в список не получится.
Лучший сервис выбора хостинга по параметрам.
Более 600 тарифов. Есть промокоды!
web-coder вне форума Ответить с цитированием
Старый 18.06.2019, 20:42   #10
fromthemoon
Пользователь
 
Регистрация: 17.06.2019
Сообщений: 29
По умолчанию

Цитата:
Сообщение от web-coder Посмотреть сообщение
Значит вставить иконки в список не получится.
Не совсем так - https://smirnovstolyar.ru/krovati, например, самая первая кровать
fromthemoon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависимый div Dimafly HTML и CSS 2 28.02.2014 20:36
Раскрывающий зависимый список в форме. uznknown1 Microsoft Office Excel 26 05.01.2014 18:49
Не получается прикрутить селект. Predator199 JavaScript, Ajax 1 17.10.2012 20:42
Поиск в списке селект zatocnik JavaScript, Ajax 0 30.08.2012 17:16
Зависимый список vlad-minsk Microsoft Office Access 4 05.08.2010 11:32