Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczny <select>.
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Wishermil1
Witam!

Kombinowałem trochę z kodem, aby uzyskać taki formularz w którym wybranie w 1 <select> jakieś opcji powodowało wyświetlenie innego selecta, przypisanego do tej opcji.

Udało mi się zrobić coś takiego i działa, jednak to nie wszystko co chciałem osiągnąć.

  1.  
  2. <script type="text/javascript">
  3. function showSelect()
  4. {
  5. $(\'.select\').change(function(){
  6. $(\'.select2\').hide();
  7. $(\'.\'+$( this ).val()+\'_show\').show();
  8. });
  9. }
  10. </script>
  11.  
  12. <label>Kategoria</label>
  13. <select class="select" name="typ" onchange="showSelect()">
  14. <option value="1" class="panie">Panie</option>
  15. <option value="2" class="panowie">Panowie</option>
  16. </select>
  17.  
  18.  
  19. <label class="1_show select2">Typ</label>
  20. <select class="1_show select2">
  21. '.$this->panieList().'
  22. </select>
  23.  
  24. <label class="2_show select2">Typ</label>
  25. <select class="2_show select2">
  26. '.$this->panowieList().'
  27. </select>


Problem polega na tym, że dopiero jak dokonam zmiany po raz drugi - to wyskakują te selekty dodatkowe. Chciałbym, aby w momencie wyświetlenia stronu już był wyświetlony:

  1. <label class="1_show select2">Typ</label>
  2. <select class="1_show select2">
  3. '.$this->panieList().'
  4. </select>


Jak to osiągnąć?

Odświeżam.


Ktoś zna przyczynę tego, że ten <selekt> docelowy wyświetla się zawsze po dokonaniu drugiej zmiany?

Na początku nie ma nic, dopiero muszę wybrać - Panowie, potem znowu Panie i dopiero wyświetli się <select>.
pedro84
A łapiesz zasadę działania onchange()? Jeśli chcesz mieć coś zaznaczonego domyślnie, to użyj atrybutu selected.
Wishermil1
Coś takiego?

<option value="1" class="panie" selected="selected">Panie</option>

Jak to należy ugryźć?
pedro84
Atrybut selected spowoduje, że dana opcja będzie automatycznie zaznaczona. O coś innego Ci chodzi?
Wishermil1
Dokładnie o to, tylko czy mogłbyś na bazie skryptu który wkleiłem przedstawić mi zastosowanie właściwe "selected"?
pedro84
No... to co wkleiłeś. Nie łapię pytania.
Wishermil1
W pierwszym poscie masz moj skrypt. Moglbys go.przerobic tak aby wyswietlal domyslnie ta pierwsza kategorie? Nie wiem jak to zrobic z tym "selected". Bylbym wdzieczny.
nmts
1. Twój kod działa tylko za drugim razem, bo za pierwszym jedyne co robisz to podpinasz event. Czyli ogólnie robisz dwa razy to samo:

Kod
onchange="showSelect()"


i tutaj:

Kod
$(\'.select\').change


Rozwiązanie powinno nasuwać Ci się samo.

2. Jeśli chcesz aby na dzień dobry wyświetlał się jeden z pozostałych selectów, to w zależności od rozwiązania, wystarczy, że wywołasz funkcje showSelect() lub skorzystasz z funkcji trigger() jquery.
Wishermil1
Dzieki za rzeczowa odpowiedz. Raczkuje w kwesti js jak widac. Wroce do domu to przetestuje.

Kurde... kombinuje z tym cały czas.

Nie wiem co zrobić. Jak usunę:

onchange="showSelect()"

To nie dokonuje w ogóle żadnej zmiany.

Jak usunę to:

$(\'.select\').change(function(){


to nie działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.