При выборе первого поля, меняется значения второго. Но при первом открытии страницы, во втором поле, должно быть по умолчанию только "Выберите модель", а у меня выводятся все значения. После того, как выбираю второй или третий все поправляется. В чем глюк? Даже selected добавил, не помогает.
<select name="first" id="first">
<option value="one" selected>Выберите марку</option>
<option value="two">BMW</option>
<option value="tri">Audi</option>
</select>
<select name="second" id="second">
<option value="one" class="one" selected>Выберите модель</option>
<option value="two" class="two">Второй 1</option>
<option value="two" class="two">Второй 2</option>
<option value="two" class="two">Второй 3</option>
<option value="tri" class="tri">третий</option>
<option value="tri" class="tri">третий 2</option>
</select>
<script>
$('#first').change(function(){
var cls = $(this).val();
$('#second option').hide();
$('#second ' + '.' + cls).show();
});
</script>
Вам нужно, чтобы option из второго select не отображались при загрузке страницы. Для этого есть несколько способов.
С помощью CSS
Не отображаем все опции, кроме выбранной
#second option:not([selected]) {
display: none;
}
С помощью HTML
Добавляем каждой option атрибут style="display: none"
<select name="second" id="second">
<option value="one" class="one" selected>Выберите модель</option>
<option value="two" class="two" style="display: none">Второй 1</option>
<option value="two" class="two" style="display: none">Второй 2</option>
<option value="two" class="two" style="display: none">Второй 3</option>
<option value="tri" class="tri" style="display: none">третий</option>
<option value="tri" class="tri" style="display: none">третий 2</option>
</select>
С помощью jQuery
Скрыть option по готовности объектной модели документа
$(document).ready(function() {
$('#second option:not([selected])').hide();
});
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости