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

Сообщение от 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.
Ответить с цитированием