Помогите разобраться с onchange
Всем доброго дня!
Суть задачи: Если из выпадающего списка выбрана Москва - подставить выпадающий список со станциями метро московского метрополитена, если Питер - питерского... Форма для вывода: <form name="af" method="get" action=""> <input type="hidden" name="afid" value="[+af.id+]" /> <label id="pcnCity" name="pcnCity" onchange="dataAction()">Город: [+af.opt8_select+]</label> <label id="pcnMosMetro" name="pcnMosMetro" style="display: none;">[+af.opt9_select+]</label> <label id="pcnPitMetro" name="pcnPitMetro" style="display: none;">[+af.opt10_select+]</label> <input type="submit" name="name" value="Найти" /> </form> Обработка:
function dataAction() {
if($("#pcnCity option:selected").text() == 'Город: Москва') {$("#pcnData").css('display','none');$("#pcnPitMetro").css('display','none');$("#pcnMosMetro").css('display','inline');} else if($("#pcnCity option:selected").text() == 'Санкт-Петербург') {$("#pcnData").css('display','none');$("#pcnMosMetro").css('display','none');$("#pcnPitMetro").css('display','inline');} else {$("#pcnMosMetro").css('display','none');$("#pcnPitMetro").css('display','none');$("#pcnData").css('display','inline');};
Где-то я тут точно "набарагозил.." Прошу помощи в решении проблемы! Большое спасибо! |
Ого! Modx штоле? onchange не на label надо вешать, а на сам селект.
|
Стоит проверять не текст селекта, а его значение. Как-то так:
<form name="af" method="get" action="">
<input type="hidden" name="afid" value="[+af.id+]" />
<label id="pcnCity" name="pcnCity">Город:
<select>
<option value="msk">Москва</option>
<option value="spb">Питер</option>
</select>
</label>
<label id="pcnMosMetro" name="pcnMosMetro" style="display: none;">
<select>
<option>Парк Культуры</option>
<option>Фрунзенская</option>
</select>
</label>
<label id="pcnPitMetro" name="pcnPitMetro" style="display: none;">
<select>
<option value="msk">Горьковская</option>
<option value="spb">Невский Проспект</option>
</select>
</label>
<input type="submit" name="name" value="Найти" />
</form>
<script src="http://yandex.st/jquery/1.8.0/jquery.min.js"></script>
<script>
$(document).on('change', '#pcnCity select', function (e) {
var value = $(this).val();
if (value === 'msk') {
$("#pcnData, #pcnPitMetro").hide();
$("#pcnMosMetro").show();
} else if (value === 'spb') {
$("#pcnData, #pcnMosMetro").hide();
$("#pcnPitMetro").show();
} else {
$("#pcnData").show();
}
});
</script>
|
Да, Modx :) Старик Evo...
На сам селект сниппет не дает.. ругается... |
я думал тут действительно fatal error, но как оказалось это просто глюки в браузере. 2 дня! 2 дня эти глюки продолжались, но тем не менее сейчас уже все работает.
|
| Часовой пояс GMT +3, время: 13:19. |