Списки select: отображение разных групп опций в зависимости от выбранного пункта
Имеется два выпадающих списка select (A и B).
Задача заключается в том чтобы в зависимости от выбранного пункта списка A, отображать различные наборы пунктов в списке B. К примеру в списке A - страны, а в списке B - города. С какой структурой лучше вообще работать - предусмотреть разные select для каждого пункта в списке A, группировать пункты в списке B или чтото еще? Подскажите элегантный и грамотный способ. |
Судя по всему это задача не версталы а программиста?
|
В простом случае никакие структуры не нужны
<html>
<head>
</head>
<body>
<select id="countries">
<option>russia</option>
<option>ukraine</option>
</select>
<select id="russia" style="display: none">
<option>Moskow</option>
<option>Sp-burg</option>
</select>
<select id="ukraine" style="display: none">
<option>Kiev</option>
<option>Harkov</option>
</select>
<script>
get=document.querySelector.bind(document)
countries=get("#countries")
russia=get("#russia")
ukraine=get("#ukraine")
countries.onchange=function(){
switch(this.value){
case("russia"): russia.style.display="block"; ukraine.style.display="none"; return
case("ukraine"): ukraine.style.display="block"; russia.style.display="none"; return
}
}
</script>
</body>
</html>
|
Спасибо. Ну а вообще такие вещи обычно реализуются php+ajax или выводить все селекты для всех стран, а потом управлять при помощи js это нормальная практика?
|
Цитата:
|
spo,
Я вообще не профи, поэтому по общепринятым практикам консультировать не могу. Но, исходя из здравого смысла, легко прийти к выводу, что переложить работу сервера на клиента всегда в интересах владельца ресурса. |
Цитата:
|
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 10:48. |