Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как применить disabled selected к первому option из списка? (https://javascript.ru/forum/dom-window/67319-kak-primenit-disabled-selected-k-pervomu-option-iz-spiska.html)

4uluu 10.02.2017 13:55

Как применить disabled selected к первому option из списка?
 
Есть два списка "Страна визита" и "Город". Когда выбираешь определенную страну, то в списке "Город" появляются соответствующие города выбранной страны. Нужно сделать так, чтобы первая строка в списке "Город" ("Выберите город") была неактивной(disabled) и выбранной(selected). Помогите, пожалуйста.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>document</title>
    <script type="text/javascript">
    function populate(s1,s2){
        var s1 = document.getElementById(s1);
        var s2 = document.getElementById(s2);
        s2.innerHTML = "";
        if(s1.value == "Norway"){
            var optionArray = ["выберите город|Выберите город", "осло|Осло", "берген|Берген", "тронхейм|Тронхейм"];
        } else if(s1.value == "Sweden"){
            var optionArray = ["выберите город|Выберите город", "стокгольм|Стокгольм", "гётеборг|Гётеборг", "мальмё|Мальмё"];
        } else if(s1.value == "Denmark"){
            var optionArray = ["выберите город|Выберите город", "копенгаген|Копенгаген", "орхус|Орхус", "оденсе|Оденсе"];
        }
        for (var option in optionArray){
            var pair = optionArray[option].split("|");
            var newOption = document.createElement("option");
            newOption.value = pair[0];
            newOption.innerHTML = pair[1];
            s2.options.add(newOption);
        }
    }
    </script>
</head>
<body>
<main>
       <div>
        <label for="country">Страна визита</label>
        <select id="country" name="country" onchange="populate(this.id,'city')">
           <option disabled selected value="">Выберите страну</option>
           <option value="Norway">Норвегия</option>
           <option value="Sweden">Швеция</option>
           <option value="Denmark">Дания</option>
        </select>
      </div>
      <div>
        <label for="city">Город</label>
        <select id="city" name="city">
          <option disabled selected value="">Выберите город</option>
        </select>
      </div>
</main>
</body>
</html>

рони 10.02.2017 13:57

4uluu,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

4uluu 10.02.2017 14:23

рони,
Отформатировал. Теперь помогите, пожалуйста:)

рони 10.02.2017 15:01

4uluu,
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>document</title>
    <script type="text/javascript">
    function populate(s1,s2){
        var s1 = document.getElementById(s1);
        var s2 = document.getElementById(s2);
        s2.options.length = 0;
        if(s1.value == "Norway"){
            var optionArray = ["выберите город|Выберите город", "осло|Осло", "берген|Берген", "тронхейм|Тронхейм"];
        } else if(s1.value == "Sweden"){
            var optionArray = ["выберите город|Выберите город", "стокгольм|Стокгольм", "гётеборг|Гётеборг", "мальмё|Мальмё"];
        } else if(s1.value == "Denmark"){
            var optionArray = ["выберите город|Выберите город", "копенгаген|Копенгаген", "орхус|Орхус", "оденсе|Оденсе"];
        }
        optionArray.forEach( function(el, i) {
               var pair = el.split("|");
               var newOption = new Option(pair[1], pair[0], !i, !i);
               !i && newOption.setAttribute('disabled', 'disabled');
               s2.options[i] = newOption;
        });
    }
    </script>
</head>
<body>
<main>
       <div>
        <label for="country">Страна визита</label>
        <select id="country" name="country" onchange="populate(this.id,'city')">
           <option disabled selected value="">Выберите страну</option>
           <option value="Norway">Норвегия</option>
           <option value="Sweden">Швеция</option>
           <option value="Denmark">Дания</option>
        </select>
      </div>
      <div>
        <label for="city">Город</label>
        <select id="city" name="city">
          <option disabled selected value="">Выберите город</option>
        </select>
      </div>
</main>
</body>
</html>

4uluu 10.02.2017 15:18

рони,
Спасибо! Выручили!


Часовой пояс GMT +3, время: 13:31.