С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
35 / 35 / 21
Регистрация: 25.07.2015
Сообщений: 165
1

Как отображать определенные данные в <select> в зависимости от значений в другом <select>?

18.04.2018, 02:49. Показов 1721. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! У меня на страницу есть два <select>. В каждом из них располагаются даты в формате dd.mm.yyyy.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<select id="s1">
        <option value="" selected disabled>Дата1</option>
        <option value="">27.01.2018</option>
        <option value="">17.02.2018</option>
        <option value="">24.03.2018</option>
        <option value="">31.04.2018</option>
        <option value="">06.05.2018</option>
</select>
 
<select id="s2">
        <option value="" selected disabled>Дата2</option>
        <option value="">27.01.2018</option>
        <option value="">17.02.2018</option>
        <option value="">24.03.2018</option>
        <option value="">31.04.2018</option>
        <option value="">06.05.2018</option>
</select>
Как я могу сделать так, чтобы при выборе даты в s1, в s2 отображались только те даты, которые "старше", чем выбранная дата в s1?
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2018, 02:49
Ответы с готовыми решениями:

Отображать поле ввода в зависимости от значения select
Здравствуйте, такая проблема не могу , то есть даже не знаю как реализовать такое. Есть таблица ...

Как сделать, чтобы при выборе например в Select страна - Россия, в другом select'e были только города РФ?
На HTML-форме есть 2 SELECT получающие option (список стран и городов) от MS SQL c двух...

В зависимости от выбранного значения select отображать input формы
Здравствуйте! Подскажите пожалуйста, как сделать так, чтобы input формы появлялся, только когда в...

Как при изменении одного <select> подгрузить в другой <select> данные...
Как при изменении одного &lt;select&gt; подгрузить в другой &lt;select&gt; данные... пример: с марками...

5
Эксперт JS
2036 / 1095 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
18.04.2018, 08:30 2
Цитата Сообщение от Teshuhack Посмотреть сообщение
Как я могу сделать
Если я правильно вас понял то может так:
Песочница
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<select id="s1">
        <option value="" selected disabled>Дата1</option>
        <option value="">27.01.2018</option>
        <option value="">17.02.2018</option>
        <option value="">24.03.2018</option>
        <option value="">31.04.2018</option>
        <option value="">06.05.2018</option>
</select>
 
<select id="s2">
        <option value="" selected disabled>Дата2</option>
        <option value="">27.01.2018</option>
        <option value="">17.02.2018</option>
        <option value="">24.03.2018</option>
        <option value="">31.04.2018</option>
        <option value="">06.05.2018</option>
</select>
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
qwerty();
function qwerty() {    
    var s1 = document.getElementById('s1');
    var s2 = document.getElementById('s2');
    var s1date, datee;
 
    s1.addEventListener('change',function(){
        var selected = this.selectedIndex, arr=[], yy, mm, dd, newDate;
        selected = new Date( s1[selected].text.replace(/(\d+).(\d+).(\d+)/, '$3/$2/$1') );
 
        for(i=1; i<s1.length; i++){
            s1date = new Date(s1[i].text.replace(/(\d+).(\d+).(\d+)/, '$3/$2/$1'));
            if(selected < s1date){
                arr.push( new Option(s1date, "значение") );
            }
            if(i+1==s1.length){
                s2.innerHTML = '<option value="" selected disabled>Дата2</option>';
                for(j=0; j<arr.length; j++){
                    newDate = new Date(arr[j].text);
                    yy = newDate.getFullYear();
                    mm = newDate.getMonth()+1;
                    dd = newDate.getDate();
 
                    (dd<10) ? dd='0'+dd : dd; (mm<10) ? mm='0'+mm : mm;
                    arr[j].text = dd+'.'+mm+'.'+yy;
                    s2.options[s2.length] = arr[j];
                }
            }
        }
    },false);
}
Потестите- напишите все ли верно или что-то не так. Если что-то не так то объясните.

Добавлено через 20 минут
Цитата Сообщение от Teshuhack Посмотреть сообщение
У меня на страницу есть два <select>
Кстати, у вас ошибка в дате, 31-го апреля в 2018г. нету, да и по-моему вообще нету.
0
35 / 35 / 21
Регистрация: 25.07.2015
Сообщений: 165
18.04.2018, 18:48  [ТС] 3
Цитата Сообщение от zlojnaxa Посмотреть сообщение
Потестите- напишите все ли верно или что-то не так. Если что-то не так то объясните.
При выборе любой даты из первого списка, во втором отображается дата "01.05.2018". Такой даты нет ни в одном списке.
Цитата Сообщение от zlojnaxa Посмотреть сообщение
Кстати, у вас ошибка в дате, 31-го апреля в 2018г. нету, да и по-моему вообще нету.
Всё верно. Это тестовые данные.
0
Эксперт JS
2036 / 1095 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
19.04.2018, 08:57 4
Цитата Сообщение от Teshuhack Посмотреть сообщение
во втором отображается дата "01.05.2018". Такой даты нет ни в одном списке.
Я же вам написал
Цитата Сообщение от zlojnaxa Посмотреть сообщение
Кстати, у вас ошибка в дате, 31-го апреля в 2018г. нету, да и по-моему вообще нету.
Почитайте прежде чем говорить что скрипт работает неправильно- из скрина понятно почему во втором списке отображается дата "01.05.2018" вместо "31.04.2018"...
Ну а в остальном все верно?
Миниатюры
Как отображать определенные данные в <select> в зависимости от значений в другом <select>?  
0
Эксперт JS
2036 / 1095 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
19.04.2018, 09:09 5
Корректные даты пишите и не будет он отображать "01.05.2018"
0
6288 / 2528 / 740
Регистрация: 11.04.2015
Сообщений: 4,072
Записей в блоге: 43
19.04.2018, 11:09 6
Teshuhack, как вариант можно просто скрывать ненужные элементы второго списка. В данном случае "старше" понимается как "позже", но это легко поменять, изменив знак > в 26-ой строке на противоположный.
PHP/HTML
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
        <select id="s1">
            <option value="" selected disabled>Дата1</option>
            <option value="">27.01.2018</option>
            <option value="">17.02.2018</option>
            <option value="">24.03.2018</option>
            <option value="">30.04.2018</option>
            <option value="">06.05.2018</option>
        </select>
 
        <select id="s2">
            <option value="" selected disabled>Дата2</option>
            <option value="">27.01.2018</option>
            <option value="">17.02.2018</option>
            <option value="">24.03.2018</option>
            <option value="">30.04.2018</option>
            <option value="">06.05.2018</option>
        </select>
 
        <script>
            document.getElementById("s1").addEventListener("change", function (evt)
            {
                let parse = s => Date.parse(s.split(".").reverse().join("-"));
                for (const option of document.querySelectorAll("#s2>option"))
                {
                        let s1text = evt.target.options[evt.target.selectedIndex].textContent;
                        option.style.display = parse(option.textContent) > parse(s1text) ? "block" : "none";
                }
            });
        </script>
Добавлено через 1 минуту
Некорректные даты не обрабатываются (по крайней мере в лисе), поэтому 31-е апреля заменил тридцатым.
0
19.04.2018, 11:09
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.04.2018, 11:09
Помогаю со студенческими работами здесь

Скрывать select если в другом select выбран определенный value
допустим есть форма &lt;form&gt; &lt;select id=&quot;i1&quot; name=&quot;price1&quot;&gt; &lt;option...

Вставка изображений в select и создание зависимости между соседним select
Добрый день! Есть вот такая конструкция: https://codepen.io/fromthemoon/pen/NVBLQj ...

Изменение вместимого select-a в зависимости от выбора из другого select-a
У меня есть 2 селекта. В первом 2 варианта (&quot;символы&quot;,&quot;цифры&quot;). Подскажите как сделать чтобы если...

Какое условие сделать чтобы от выбранного значения в select другой select принимал определенные значения?
выбираем например книгу и потом во втором select должно изменится значение &lt;label...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Администрирован­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru