Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Помогите разобраться с onchange (https://javascript.ru/forum/css-html/49778-pomogite-razobratsya-s-onchange.html)

soberdays 28.08.2014 00:22

Помогите разобраться с 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');};


Где-то я тут точно "набарагозил.."
Прошу помощи в решении проблемы!

Большое спасибо!

ixth 28.08.2014 01:02

Ого! Modx штоле? onchange не на label надо вешать, а на сам селект.

ixth 28.08.2014 01:10

Стоит проверять не текст селекта, а его значение. Как-то так:

<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>

soberdays 28.08.2014 01:17

Да, Modx :) Старик Evo...
На сам селект сниппет не дает.. ругается...

Aliraza2 03.09.2014 10:13

я думал тут действительно fatal error, но как оказалось это просто глюки в браузере. 2 дня! 2 дня эти глюки продолжались, но тем не менее сейчас уже все работает.


Часовой пояс GMT +3, время: 19:47.