Списки 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, время: 17:11. |