<header>
<h2 class="title">HTML Events: change</h2>
<p class="description">Подія спрацьовує при зміні значення елемента форми.</p>
</header>
<main>
<div class="result">
<!-- Вибір країни -->
<label for="countrySelect">Оберіть країну:</label>
<select id="countrySelect">
<option value="">Оберіть країну</option>
<option value="ua">Україна</option>
<option value="us">США</option>
<option value="fr">Франція</option>
</select>
<!-- Вибір міста, що оновлюється динамічно -->
<label for="citySelect">Оберіть місто:</label>
<select id="citySelect" disabled>
<option value="">Спочатку оберіть країну</option>
</select>
</div>
</main>
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
label, select {
display: block;
margin-top: 15px;
}
// Отримуємо елементи з DOM
const countrySelect = document.getElementById('countrySelect');
const citySelect = document.getElementById('citySelect');
// Список міст по країнах
const cities = {
ua: ['Київ', 'Львів', 'Одеса'],
us: ['Нью-Йорк', 'Лос-Анджелес', 'Чикаго'],
fr: ['Париж', 'Ліон', 'Марсель']
};
// Обробник події 'change' для вибору країни
countrySelect.addEventListener('change', function() {
const selectedCountry = countrySelect.value;
// Очищаємо попередні опції міста
citySelect.innerHTML = '';
if (selectedCountry) {
citySelect.disabled = false;
const cityOptions = cities[selectedCountry];
// Додаємо нові опції до списку міст
cityOptions.forEach(function(city) {
const option = document.createElement('option');
option.value = city.toLowerCase();
option.textContent = city;
citySelect.appendChild(option);
});
} else {
// Вимикаємо вибір міста, якщо країна не вибрана
citySelect.disabled = true;
citySelect.innerHTML = '<option value="">Спочатку оберіть країну</option>';
}
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.