Вход

Просмотр полной версии : Как применить disabled selected к первому option из списка?


4uluu
10.02.2017, 13:55
Есть два списка "Страна визита" и "Город". Когда выбираешь определенную страну, то в списке "Город" появляются соответствующие города выбранной страны. Нужно сделать так, чтобы первая строка в списке "Город" ("Выберите город") была неактивной(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 и т.п., например:


... ваш код...



О том, как вставить в сообщение исполняемый 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
рони,
Спасибо! Выручили!