RatiboR1978
@RatiboR1978

Задача с селектором, как решить?

Доброе время суток! Вот засел с задачкой: Даны два селекта. В первом находятся страны, во втором - города. Сделайте так, чтобы когда выбирается определенная страна - в другом селекте появлялись города этой страны. В абзац ниже пишите выбранную страну и город через запятую. Первую часть задачи вроде решил но не до конца, а вот вторую часть с параграфом осилить не могу подскажите как сделать, вот мое решение https://codepen.io/RatiboR1978/pen/mMNpOY?editors=1111 Вопросы по задачи такие как сделать чтобы сразу первый раз когда нажимаешь на Россию вылазили города, они почему то появляются только тогда пока в сша не схожу. С параграфом почти такая же проблема при выборе России пока в Абакан не сходишь Москва в параграфе на появляется. Как это поправить?
  • Вопрос задан
  • 364 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
<select id="country"></select>
<select id="сity"></select>
<p></p>

const data = {
  'Франция': [ 'Париж', 'Марсель', 'Лион' ],
  'США': [ 'Вашингтон', 'Чикаго', 'Фарго' ],
  'Италия': [ 'Рим', 'Милан', 'Неаполь' ],
};

const country = document.querySelector('#country');
const city = document.querySelector('#сity');
const p = document.querySelector('p');

country.addEventListener('change', e => {
  setSelectOptions(city, data[e.target.value]);
});

city.addEventListener('change', () => {
  p.innerText = [ country.value, city.value ].join(', ');
});

setSelectOptions(country, Object.keys(data));


function setSelectOptions(selectEl, optionsData) {
  selectEl.innerHTML = optionsData.map(n => `<option>${n}</option>`).join('');
  selectEl.dispatchEvent(new Event('change'));
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
01 июн. 2024, в 23:20
30000 руб./за проект
01 июн. 2024, в 22:34
2500 руб./за проект
01 июн. 2024, в 21:40
2500 руб./в час