Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 6
Регистрация: 29.11.2013
Сообщений: 233

Скрыть некоторые пункты выпадающего меню

04.06.2014, 17:18. Показов 1704. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Есть форма:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
                <div class="forma_3">
                    <span class="crimson_text">Окна</span>
                    <span class="normal_text">700x900</span>
                    <select  name="okna1">
                        <option value="1">0</option>
                        <option value="2">1</option>
                        <option value="3">2</option>
                        <option value="4">3</option>
                    </select>
                    <span class="normal_text">900x1000</span>
                    <select  name="okna2">
                        <option value="1">0</option>
                        <option value="2">1</option>
                        <option value="3">2</option>
                        <option value="4">3</option>
                    </select>
                </div>
тут 2 селекта okna1 и okna2. Нужно чтобы сумма элементов обоих селектов не превышала 3, а то что будет сверх трех скрывались. Пример. Если в селекте okna1 выбрано значение 1, то в селекте okna2 пропадало значение 3, а выплывало только 0. 1. 2. Или например если в селекте okna2 выбрано значение 3, в селекте okna1 пропадали все значения кроме нуля.

Добавлено через 23 часа 23 минуты
Что не кто не знает чтоли???

Добавлено через 1 минуту
JavaScript
1
$('.okna2 option:nth-child(2)').attr('disabled', 'disabled');
хотя бы как вместо двойки засунуть какую либо переменную???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.06.2014, 17:18
Ответы с готовыми решениями:

Скрыть все пункты древовидного меню кроме активного
Здравствуйте, есть древовидная менюшка которая раскрывается при наведении как можно сделать чтобы при перемещении по меню по...

Плагин Multiscroll, пункты меню не реагируют на скролл
ребят, никто не может подсказать, почему боковое меню не меняет класс active при скроле? сайт wsfox.ru могу исходники кинуть если...

Скрытие выпадающего меню
Доброго всем времени суток. Пытаюсь тут реализовать выпадающее меню с минимумом функций для библиотеки компонентов. И чего то подзавис...

8
 Аватар для mihalken
97 / 97 / 74
Регистрация: 15.05.2014
Сообщений: 269
Записей в блоге: 2
05.06.2014, 10:41
Цитата Сообщение от antidemon92 Посмотреть сообщение
как вместо двойки засунуть какую либо переменную???
JavaScript
1
2
var a = 2;
$('.okna2 option:nth-child(' + a + ')').attr('disabled', 'disabled');
?
0
1 / 1 / 6
Регистрация: 29.11.2013
Сообщений: 233
06.06.2014, 14:50  [ТС]
mihalken, спасибо уже допер

Добавлено через 1 минуту
JavaScript
1
2
3
// Извлечение val                 okna1= $(".okna1 :selected").val();
                    okna2= $(".okna2 :selected").val();
                    okna3= $(".okna3 :selected").val();
Подскажите как это можно упростить. Код ужасен я знаю...
JavaScript
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
                /*_______________________ОКНА________________*/
                $('.reshetki option:nth-child(2), .reshetki option:nth-child(3), .reshetki option:nth-child(4), .stavni option:nth-child(2), .stavni option:nth-child(3), .stavni option:nth-child(4)').prop("disabled", true);
                $('.okna1, .okna2, .okna3').change(function() {//Обнуление
                    $(".stavni :nth-child(1), .reshetki :nth-child(1) ").attr("selected", "selected");
                });
                $('.okna1, .okna2, .okna3').click(function() {
                    $('.setka option:nth-child(2), .reshetki option:nth-child(2), .reshetki option:nth-child(3), .reshetki option:nth-child(4), .stavni option:nth-child(2), .stavni option:nth-child(3), .stavni option:nth-child(4)').prop("disabled", true);
                    $('.okna2, .okna1, .okna3').prop("disabled", false);
                    $('.okna2 option:nth-child(3), .okna2 option:nth-child(4),.okna1 option:nth-child(3), .okna1 option:nth-child(4), .okna3 option:nth-child(3), .okna3 option:nth-child(4)').prop("disabled", false);
                    
                    /*___Окна блокировка некоторых селектов_______*/
                    if(okna1 == 1)$('.okna2 option:nth-child(4), .okna3 option:nth-child(4)').prop("disabled", true);
                    if(okna2 == 1)$('.okna1 option:nth-child(4), .okna3 option:nth-child(4)').prop("disabled", true);
                    if(okna3 == 1)$('.okna1 option:nth-child(4), .okna2 option:nth-child(4)').prop("disabled", true);
                    if(okna1 == 2)$('.okna2 option:nth-child(3), .okna2 option:nth-child(4), .okna3 option:nth-child(3), .okna3 option:nth-child(4)').prop("disabled", true);
                    if(okna2 == 2)$('.okna1 option:nth-child(3), .okna1 option:nth-child(4), .okna3 option:nth-child(3), .okna3 option:nth-child(4)').prop("disabled", true);
                    if(okna3 == 2)$('.okna2 option:nth-child(3), .okna2 option:nth-child(4), .okna1 option:nth-child(3), .okna1 option:nth-child(4)').prop("disabled", true);
                    if(okna1 == 3)$(".okna2, .okna3").prop("disabled", true);
                    if(okna2 == 3)$(".okna1, .okna3").prop("disabled", true);
                    if(okna3 == 3)$(".okna1, .okna2").prop("disabled", true);
                    if(okna1 == 1 &  okna2 == 1)$('.okna3 option:nth-child(3), .okna3 option:nth-child(4)').prop("disabled", true);
                    if(okna1 == 1 &  okna3 == 1)$('.okna2 option:nth-child(3), .okna2 option:nth-child(4)').prop("disabled", true);
                    if(okna2 == 1 &  okna3 == 1)$('.okna1 option:nth-child(3), .okna1 option:nth-child(4)').prop("disabled", true);
                    if(okna1 == 2 &  okna2 == 1 | okna1 == 1 &  okna2 == 2 )$(".okna3").prop("disabled", true);
                    if(okna1 == 2 &  okna3 == 1 | okna1 == 1 &  okna3 == 2 )$(".okna2").prop("disabled", true);
                    if(okna2 == 2 &  okna3 == 1 | okna2 == 1 &  okna3 == 2 )$(".okna1").prop("disabled", true);
                    
                    //Открыты все 3
                    if(okna1 == 3 | okna2 == 3 | okna3 == 3 | okna1 == 1 & okna2 == 1 & okna3 == 1)$('.reshetki option:nth-child(2), .reshetki option:nth-child(3), .reshetki option:nth-child(4), .stavni option:nth-child(2), .stavni option:nth-child(3), .stavni option:nth-child(4)').prop("disabled", false);
                    if(okna1 == 1 &  okna2 == 2 | okna1 == 2 &  okna2 == 1 | okna1 == 1 &  okna3 == 2| okna1 == 2 &  okna3 == 1 | okna2 == 1 &  okna3 == 2 | okna2 == 2 &  okna3 == 1)$('.reshetki option:nth-child(2), .reshetki option:nth-child(3), .reshetki option:nth-child(4), .stavni option:nth-child(2), .stavni option:nth-child(3), .stavni option:nth-child(4)').prop("disabled", false);
                    //Открыты 2
                    if(okna1 == 1 &  okna2 == 1 | okna1 == 1 &  okna3 == 1 | okna2 == 1 &  okna3 == 1 )$('.reshetki option:nth-child(2), .reshetki option:nth-child(3), .stavni option:nth-child(2), .stavni option:nth-child(3)').prop("disabled", false);
                    if(okna1 == 0 &  okna2 == 2 | okna1 == 2 &  okna2 == 0 | okna1 == 0 &  okna3 == 2| okna1 == 2 &  okna3 == 0 | okna2 == 0 &  okna3 == 2 | okna2 == 2 &  okna3 == 0)$('.reshetki option:nth-child(2), .reshetki option:nth-child(3), .stavni option:nth-child(2), .stavni option:nth-child(3)').prop("disabled", false);
                    //Открыта 1
                    if(okna1 == 0 & okna2 == 0 &  okna3 == 1 | okna1 == 0 & okna2 == 1 &  okna3 == 0| okna1 == 1 & okna2 == 0 &  okna3 == 0)$('.reshetki option:nth-child(2), .stavni option:nth-child(2)').prop("disabled", false);
                });
0
69 / 69 / 50
Регистрация: 25.03.2012
Сообщений: 241
06.06.2014, 17:05
JavaScript
1
2
3
4
5
6
7
8
9
10
var sel_val=0;
        $(".forma_3 select").change(function(){     
        sel_val=$(this).val();
            $(".forma_3 select").not($(this)).children('option').prop('disabled',false).each(function(){
                if(parseInt($(this).val())+parseInt(sel_val)>3)
                {
                $(this).prop('disabled',true);
                }
            });
        });
0
1 / 1 / 6
Регистрация: 29.11.2013
Сообщений: 233
06.06.2014, 17:40  [ТС]
Faust971, неа не робит. если в первом и втором выбрать 2 и 1. третья не блокируется.
0
69 / 69 / 50
Регистрация: 25.03.2012
Сообщений: 241
06.06.2014, 18:02
В ready надо вставлять
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
$(document).ready(function(){
var sel_val=0;
        $(".forma_3 select").change(function(){     
        sel_val=$(this).val();
            $(".forma_3 select").not($(this)).children('option').prop('disabled',false).each(function(){
                if(parseInt($(this).val())+parseInt(sel_val)>3)
                {
                $(this).prop('disabled',true);
                }
            });
        });
});
Добавлено через 5 минут
Значения ваши на единицу меньше ставил может в этом причина
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 <div class="forma_3">
                    <span class="crimson_text">Окна</span>
                    <span class="normal_text">700x900</span>
                    <select  name="okna1">
                        <option value="0">0</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                    </select>
                    <span class="normal_text">900x1000</span>
                    <select  name="okna2">
                        <option value="0">0</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                    </select>
                </div>
0
1 / 1 / 6
Регистрация: 29.11.2013
Сообщений: 233
06.06.2014, 22:41  [ТС]
Faust971, а во все норм. А если будет вот так:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<div class="forma_3">
                    <span class="crimson_text">Окна</span>
                    <span class="normal_text">700x900</span>
                    <select  name="okna1">
                        <option value="0">0</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                    </select>
                    <span class="normal_text">900x1000</span>
                    <select  name="okna3">
                        <option value="0">0</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                    </select>
                 <select  name="okna2">
                        <option value="0">0</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                    </select>
                </div>
а если будет форма из трех селектов???
0
69 / 69 / 50
Регистрация: 25.03.2012
Сообщений: 241
07.06.2014, 16:43
Если модифицировать код будет и с тремя
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
var sel_val=0;
        $(".forma_3 select").change(function(){     
            $(".forma_3 select option").prop('disabled',false).each(function(){
            sel_val=0;
                    $(".forma_3 select").not($(this).parent()).each(function(){
                    sel_val+=parseInt($(this).val());   
                    }); 
                if(parseInt($(this).val())+parseInt(sel_val)>3)
                {
                $(this).prop('disabled',true);
                }
            });
        });
1
1 / 1 / 6
Регистрация: 29.11.2013
Сообщений: 233
07.06.2014, 19:10  [ТС]
Faust971, Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.06.2014, 19:10
Помогаю со студенческими работами здесь

Создание выпадающего меню на кнопке.
Как сделать, чтобы при наведении курсора на кнопку выпадала менюшка, как пуск, только вниз и пропадала когда уводишь курсор за пределы...

Исправить баги выпадающего меню
Всем приветы. Подскажите как исправить такую проблему: есть у меня выпадающее меню, работает, как и задумано. Кроме одной маленькой...

Функция выпадающего меню на сайте
Ребят Хелп) Есть код функции выпадающего меню. Работает вот так (несколько пунктов с подменю и рядом с ними стрелочка, при нажатии на...

Высота выпадающего вложенного меню
Есть раскрывающееся вертикальное меню. Как сделать чтобы при наведении на любой элемент li первый элемент отрывающегося ul был на одном с...

После перехода на мобильную версию сайта пункты меню становятся не кликабельны
Приветствую всех. Во всех разрешениях экрана пункты меню работают исправно при переходе в мобильную версию перестают реагировать. В чем...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru