Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 02.03.2018, 17:28
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от laimas Посмотреть сообщение
the_little,
j0hnik, уже написал, но учтите, что изменение состояние списка не обязательно произойдет, поэтому в вашей задаче, может лучше опрашивать сами списки, получая их значения?
т.е. мне нужно местами поменять все.

Сначала пойдут функции которые будут отвечать за поведение списков.

И уже после всех этих функций, я задаю переменные и получаю значения списков. Так?

А по коду подскажите еще
$('#srochnost').on('change', function() {
	        if(!this.value) return;
	        $('#rejim option').slice(0, -1)
	                          .prop('disabled', this.value==2)
	                          .end()
	                          .eq(3)
	                          .prop('selected', this.value==2)
					
});


Тут мы для опции 2 в первом списке подставляли опцию 3 во втором списке.

Если немного изменить задачу.

При выборе опции 2 в первом списке во втором нужно оставить например опции с value равным 5, 6, 7, 9, 13.
При выборе опции 3 в первом списке во втором нужно оставить например опции с value равным 1,2,3,8,12.

При этом опцию во втором списке подставлять и выбирать по умолчанию не нужно.
Ответить с цитированием
  #22 (permalink)  
Старый 02.03.2018, 17:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от the_little
А по коду подскажите еще
А что по нему подсказать? Здесь согласно условию вами описанному становятся доступными/недоступными для выбора соответствующие списки. Ведь то, что у вас

$('#rejim-opt-null').fadeOut();
$('#rejim-opt-day').fadeOut();
$('#rejim-opt-night').fadeOut();

и что можно написать проще:

$('#rejim-opt-null,#rejim-opt-day,#rejim-opt-night').fadeOut();

лишено смысла, так как всех этих эффектов пользователь все равно не увидит. Тогда уж просто css({dispalay: 'none/block'}).

Что касается каких-то сложных условий, как то при выборе второго списка скрыть 5, 6, 7, 9, 13, а третьего 1,2,3,8,12, то лучше эти параметры задать через атрибут. При выборе получать эти значения и скрывать указанные опции.

PS. Например так:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(function() {
    $('#a').on('change', function() {
        var o = $(this).children(':selected').data('mod');
        $('#b').val('')
               .find('option')
               .show()
               .filter('[value='+o.join('],[value=')+']')
               .hide()
    })
});
</script>

<select id="a">
    <option value="" selected disabled>Select...</option>
    <option data-mod="[2,5,7,9]" value="1">Option 1</option>
    <option data-mod="[3,4,6,8,9]" value="2">Option 2</option>
</select>
 
<select id="b">
    <option value="">Select...</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
    <option value="5">Option 5</option>
    <option value="6">Option 6</option>
    <option value="7">Option 7</option>
    <option value="8">Option 8</option>
    <option value="9">Option 9</option>
</select>

Последний раз редактировалось laimas, 02.03.2018 в 18:12.
Ответить с цитированием
  #23 (permalink)  
Старый 02.03.2018, 21:25
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от laimas Посмотреть сообщение

Что касается каких-то сложных условий, как то при выборе второго списка скрыть 5, 6, 7, 9, 13, а третьего 1,2,3,8,12, то лучше эти параметры задать через атрибут. При выборе получать эти значения и скрывать указанные опции.

PS. Например так:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(function() {
    $('#a').on('change', function() {
        var o = $(this).children(':selected').data('mod');
        $('#b').val('')
               .find('option')
               .show()
               .filter('[value='+o.join('],[value=')+']')
               .hide()
    })
});
</script>

<select id="a">
    <option value="" selected disabled>Select...</option>
    <option data-mod="[2,5,7,9]" value="1">Option 1</option>
    <option data-mod="[3,4,6,8,9]" value="2">Option 2</option>
</select>
 
<select id="b">
    <option value="">Select...</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
    <option value="5">Option 5</option>
    <option value="6">Option 6</option>
    <option value="7">Option 7</option>
    <option value="8">Option 8</option>
    <option value="9">Option 9</option>
</select>
То что нужно! Только у меня не работает... В смысле тут не работает.
Ответить с цитированием
  #24 (permalink)  
Старый 03.03.2018, 01:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от the_little
В смысле тут не работает.
Код по запуску кнопкой "Просмотреть"? Он и в цитировании (чего не надо делать) работает. Нет в нем чего-то, что вызывало бы проблемы.

Фильтр лучше бы было задать так:

.filter(function() {
     return ~o.indexOf(+this.value)
     //или если с поддержкой IE8, то можно средствами JQ
     //return ~$.inArray(+this.value, o)
})

Последний раз редактировалось laimas, 03.03.2018 в 02:34.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
select - большое количество option kot_k_k (X)HTML/CSS 3 08.09.2017 16:34
Содержимое option по клику на select wwonder Общие вопросы Javascript 5 18.04.2017 14:12
Значение из select option vnmslf jQuery 19 21.07.2016 12:09
Подправьте скрипт, в одну строчку :)(Выбор Option в динамическом Select) ScribaXXI Общие вопросы Javascript 1 10.02.2016 07:32
Java Script, совместная работа textarea с select option Алекс_ Элементы интерфейса 1 12.05.2015 08:13