Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2017, 13:55
Новичок на форуме
Отправить личное сообщение для 4uluu Посмотреть профиль Найти все сообщения от 4uluu
 
Регистрация: 10.02.2017
Сообщений: 3

Как применить 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>

Последний раз редактировалось 4uluu, 10.02.2017 в 14:20.
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2017, 13:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

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

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


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2017, 14:23
Новичок на форуме
Отправить личное сообщение для 4uluu Посмотреть профиль Найти все сообщения от 4uluu
 
Регистрация: 10.02.2017
Сообщений: 3

рони,
Отформатировал. Теперь помогите, пожалуйста
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2017, 15:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

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>
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2017, 15:18
Новичок на форуме
Отправить личное сообщение для 4uluu Посмотреть профиль Найти все сообщения от 4uluu
 
Регистрация: 10.02.2017
Сообщений: 3

рони,
Спасибо! Выручили!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить стрелку к первому элементу списка на css imedia Элементы интерфейса 4 13.10.2015 11:59
jQuery UI Range slider как заблокировать левый ползунок по первому клику Oleg_Pupkin jQuery 3 04.09.2013 13:44
Как применить css ко всем элементам внутри блока MaxB jQuery 12 28.05.2010 07:56
как тегу option с определенным value присвоить selected kichSman Общие вопросы Javascript 2 24.10.2009 03:14
Как заменить эл-ты одного списка эл-тами другого ? Mayar Элементы интерфейса 5 28.04.2009 11:21