Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.05.2015, 14:30
Интересующийся
Отправить личное сообщение для MasterDmx Посмотреть профиль Найти все сообщения от MasterDmx
 
Регистрация: 16.02.2013
Сообщений: 21

change ф-я для select'ов
Ребят, помогите решить задачку.

Суть в следующем:
Есть один select со списком регионов,
<select id="reg_region_name">
<option class="moscow_city_only" value="Москва">Москва</option>
<option class="adigeya_city" value="Адыгея">Адыгея</option>
<option class="altay_city" value="Алтайский край">Алтайский край</option>

(не ругайте за классы в option, по-другому не знал как сделать, что бы сохранить value нормальным)

После региона идет куча select'ов с городами каждого региона, по умолчанию все из них скрыты, а id этих селектов равен классу option.

Пользователь выбирает регион, срабатывает change ф-я, которая выбирает тот самый класс из option и подставляет его в fadeIn, тем самым делая видимым нужный select с выбором города. Тут проблем нет. На всякий приложу часть код открытия:
$('#fact_region_name').change(function() {
	names_fact = $("#fact_region_name option:selected").attr("class");
	$('#' + names_fact).fadeIn().addClass("fact_city_name");
});


Вот в чем проблема. Понадобилось сделать так, что бы при выборе этого самого города, в другом select'е выставлялось точно такое же значение. Т.е. пользователь должен выбирать регион и город дважды. Что бы его не напрягать нужно что бы при первом выборе селекта значения сдублировались на второй. С выбором региона проблем не возникло, а вот с выбором города никак не получается.

Нужно снова воспользоваться ф-ей change, но как ей указать какой именно из select'ов отследить, их ведь целая куча скрытых, а нужен тот, который открылся после выбора региона.

пытался сделать сначала так:
$('select.fact_city_name').change(function() {
 alert('прокатило');
});

Т.е. когда селект с городом открывался - ему присваивался класс "fact_city_name" и по нему пытался отследить его изменение. Не прокатило.

Потом попробовал провернуть через глобальную переменную names_fact, которая была равна классу option при выборе региона:
$( '#'+names_fact).change(function() {
 alert('прокатило');
});


Тоже не получилось. Надеюсь поможете разобраться в чем дело.
Ответить с цитированием
  #2 (permalink)  
Старый 06.05.2015, 14:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

MasterDmx, ты явно делаешь что-то не доброе...
Ответить с цитированием
  #3 (permalink)  
Старый 07.05.2015, 05:11
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Баянище. Если вы закачиваете все данные в страницу, то закачивайте данные, а не кучу элементов уже отрендеренных по этим данным. То есть просто кладите в страницу дерево регионов и городов как оно есть на сервере, или где там.

Если вы не закачиваете все данные, то напишите функцию подкачки. Это элементарная вещь. Юзер выбрал рыгион, аякс выдал id, сервер выдал список городов, по списку скрипт сделал список и так далее.
Ответить с цитированием
  #4 (permalink)  
Старый 07.05.2015, 05:21
Аватар для new_guy
Интересующийся
Отправить личное сообщение для new_guy Посмотреть профиль Найти все сообщения от new_guy
 
Регистрация: 09.08.2011
Сообщений: 27

Выложите html&css, попробуем разобраться.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Callback функция и глобальные переменные drunia85 Events/DOM/Window 5 14.10.2012 03:06
Глобальные переменные Гео_zen Общие вопросы Javascript 8 27.08.2012 15:30
глобальные переменные сайта и js leko Общие вопросы Javascript 8 01.07.2012 10:53
Глобальные переменные kilogram Серверные языки и технологии 3 30.03.2012 15:59
глобальные и локальные переменные San4ezy Элементы интерфейса 4 10.10.2010 19:23