Показать сообщение отдельно
  #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('прокатило');
});


Тоже не получилось. Надеюсь поможете разобраться в чем дело.
Ответить с цитированием