Опубликовано Оставить комментарий

Зависимые списки

Зависимые списки с JavaScript
Зависимые списки с JavaScript

Зависимые списки — часто используемое решение для улучшения пользовательского интерфейса. Пользователю не нужно вводить/рассматривать огромную массу информации. Достаточно выбрать нужны элемент списка в первом списке, а через JavaScript построить второй список, зависимый от первого. Это могут быть сочетания Автокомпания — Марка машины, название языка программирования — курсы по этому языку программирования.

Зависимые списки: создание

Готовый пример зависимых списков.

HTML-код списков:

<select name="country" id="country">
  <option value="bra" selected>Бразилия</option>
  <option value="rus">Россия</option>
  <option value="ind">Индия</option>
  <option value="chn">Китай</option>
  <option value="zaf">ЮАР</option>
</select>
<select name="city" id="city">
</select>

CSS-код списков:

* {
  font-size: 20px;
  padding: 2px;
}

При помощи JavaScript создаем пункты второго списка:

var cities = {
  bra: ["Сан-Паулу", "Рио-де-Жанейро"],
  rus: ["Москва", "Санкт-Петербург"],
  ind: ["Мумбаи", "Дели"],
  chn: ["Шанхай", "Пекин"],
  zaf: ["Йоханнесбург", "Кейптаун"]  
};
var country = document.getElementById("country");
var city = document.querySelector("#city");
window.onload = selectCountry;
country.onchange = selectCountry;

function selectCountry(ev){
  city.innerHTML = "";
  var c = this.value || "bra", o;
  for(let i = 0; i < cities[c].length; i++){
    o = new Option(cities[c][i],i,false,false);
    city.add(o);
  };
}

Решение с пунктами списка, зависящими от другого — отличный вариант для многих задач на сайте. Но если списки большие, то будет иметь смысл организовать получение значение для пунктов (options) второго списка через AJAX с сервера.

Добавить комментарий