Глюк во втором списке при выборе первого

174
10 декабря 2016, 10:27

При выборе первого поля, меняется значения второго. Но при первом открытии страницы, во втором поле, должно быть по умолчанию только "Выберите модель", а у меня выводятся все значения. После того, как выбираю второй или третий все поправляется. В чем глюк? Даже 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>
Answer 1

Вам нужно, чтобы 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();
});
READ ALSO
Не могу запустить сайт Hello World на хостинге firebase

Не могу запустить сайт Hello World на хостинге firebase

Делаю следующие действия 1Зарегистрировалась на сайте firebase (вошла со своего гугл аккаунта) и создала там проект 2

281
Pop-up &amp; Sticky Bar

Pop-up & Sticky Bar

Ребят может мне кто нибудь объяснить почему в первом button'e неработает функция закрытия, а во втором работает? И как эт возможно исправить?

195
проверка на уникальное поле

проверка на уникальное поле

Как можно реализовать проверку на уникальность вводимого поля:

188
Разобрать XML в PHP на SimpleXML

Разобрать XML в PHP на SimpleXML

Как можно получить все значения элементов "name" для файла со структурой:

196