Помогите разобраться с 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, время: 19:47. |