Skocz do zawartości

Jquery - zabawa z selectami


korpirkor

Rekomendowane odpowiedzi

Witam :P

Chciałbym zrobić coś takiego za pomocą np. JQuery. niestety javascript nie jest moją mocną stronę więc proszę o pomoc ;)

Taki jest kod źródłowy

<select name="values[Wojewodztwo]">
<option label="Dowolnie" value="-1">Dowolnie</option>
<option label="mazowieckie" value="mazowieckie">mazowieckie</option>
<option label="pomorskie" value="pomorskie">pomorskie</option>
</select>

<select name="values[Miasto]">
<option label="Dowolnie" value="-1">Dowolnie</option>
<option label="mazowieckie/Warszawa" value="mazowieckie/Warszawa">mazowieckie/Warszawa</option>
<option label="mazowieckie/Pruszków" value="mazowieckie/Pruszków">mazowieckie/Pruszków</option>
<option label="pomorskie/Gdańsk" value="pomorskie/Gdańsk">pomorskie/Gdańsk</option>
<option label="pomorskie/Sopot" value="pomorskie/Sopot">pomorskie/Sopot</option>
</select>

Chciałbym, żeby po wybraniu np. województwa mazowieckie w selekcie Miasto pojawiły się tylko elementy:

	<option label="Dowolnie" value="-1">Dowolnie</option>
<option label="pomorskie/Gdańsk" value="pomorskie/Gdańsk">Gdańsk</option>
<option label="pomorskie/Sopot" value="pomorskie/Sopot">Sopot</option>

w sumie elementy mogą wyglądać nawet tak na wejściu:

<option for="pomorskie" label="Sopot" value="pomorskie/Sopot">Sopot</option>

naprawdę będę wdzieczny za pomoc ;)

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Ja bym to zrobił klasami

<select name="values[Wojewodztwo]" id="wojewodztwa">
<option label="Dowolnie" value="-1" class="woj1">Dowolnie</option>
<option label="mazowieckie" value="mazowieckie" class="woj2">mazowieckie</option>
<option label="pomorskie" value="pomorskie" class="woj3">pomorskie</option>
</select>

<select name="values[Miasto]" id="miasta">
<option label="Dowolnie" value="-1">Dowolnie</option>
<option label="mazowieckie/Warszawa" value="mazowieckie/Warszawa" class="woj2">mazowieckie/Warszawa</option>
<option label="mazowieckie/Pruszków" value="mazowieckie/Pruszków" class="woj2">mazowieckie/Pruszków</option>
<option label="pomorskie/Gdańsk" value="pomorskie/Gdańsk" class="woj3">pomorskie/Gdańsk</option>
<option label="pomorskie/Sopot" value="pomorskie/Sopot" class="woj3">pomorskie/Sopot</option>
</select>
<script>
$("#wojewodztwa").change(function(){
$("#miasta option").hide();
var klasa = $(this + ":selected").attr("class");
$("#miasta ." + klasa).show(); 
})
</script>

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki, giker !!

Twój sposób zadziałał, ale nie od razu ;)

Teraz wygląda to tak:

<select class="search_Wojewodztwo" name="value[Wojewodztwo]" id="wojewodztwa">
<option label="Dowolnie" value="-1">Dowolnie</option>
<option label="mazowieckie" value="mazowieckie">mazowieckie</option>
<option label="pomorskie" value="pomorskie">pomorskie</option>
</select>

<select class="search_Miasto" name="value[Miasto]" id='miasta'>
<option label="Dowolnie" value="-1">Dowolnie</option>
<option class="mi_mazowieckie" label="Warszawa" value="mazowieckie/Warszawa">Warszawa</option>
<option class="mi_mazowieckie" label="Pruszków" value="mazowieckie/Pruszków">Pruszków</option>
<option class="mi_pomorskie" label="Gdańsk" value="pomorskie/Gdańsk">Gdańsk</option>
<option class="mi_pomorskie" label="Sopot" value="pomorskie/Sopot">Sopot</option>
</select>

<script type="text/javascript">
$(document).ready(function()
{
$("select#wojewodztwa").change(function(){
	if ($(this).val() != '-1')
	{
		$("select#miasta option").hide();
		var klasa = $("select#wojewodztwa option:selected").val();
		$("select#miasta .mi_" + klasa).show();
		$("select#miasta [value=-1]").show();
		$("select#miasta").attr('selectedIndex', 0);
	}
	else
	{
		$("select#miasta option").show();
	}
});
});
</script>

Dzięki jeszcze raz i pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności