Цитата:
Сначала пойдут функции которые будут отвечать за поведение списков. И уже после всех этих функций, я задаю переменные и получаю значения списков. Так? А по коду подскажите еще
$('#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. При этом опцию во втором списке подставлять и выбирать по умолчанию не нужно. |
Цитата:
$('#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>
|
Цитата:
|
Цитата:
Фильтр лучше бы было задать так:
.filter(function() {
return ~o.indexOf(+this.value)
//или если с поддержкой IE8, то можно средствами JQ
//return ~$.inArray(+this.value, o)
})
|
| Часовой пояс GMT +3, время: 07:30. |