Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z formularzem
Forum PHP.pl > Forum > Po stronie przeglądarki
cachaito
Witam!

Mam prosty formularz:

  1. <label for="zodiac">Choose your zodiac sign:</label>
  2. <select name="zodiac" size="1">
  3. <optgroup label="Your zodiac sign:">
  4. <option value="leo">Leo</option>
  5. <option value="virgo">Virgo</option>
  6. </select>
  7.  
  8. <label for="more">Tell me more about you:</label>
  9. <select name="more" id="leo" size="1">
  10. <optgroup label="Tell me exacly about your leo sign:">
  11. <option value="first">I am from July</option>
  12. <option value="second">"I am from August"</option>
  13. </select>
  14.  
  15. <select name="more" id="virgo" size="1">
  16. <optgroup label="Tell me exacly about your virgo sign:">
  17. <option value="first">"I am from August</option>
  18. <option value="second">"I am' from September"</option>
  19. </select>


Listy #leo i #virgo są ukryte (display:none;). Jak zrobić (najlepiej z pomocą jQuery...) aby po wybraniu znaku zodiaku z listy pierwszej pojawiła się odpowiednia lista dla danego znaku? Chodzi o to, że gdy nacisnę na opcję Leo pojawia się
  1. <label for="more">Tell me more about you:</label>
  2. <select name="more" id="leo" size="1">
  3. <optgroup label="Tell me exacly about your leo sign:">
  4. <option value="first">I am from July</option>
  5. <option value="second">"I am from August"</option>
  6. </select>
zaś gdy zmienię zdanie i nacisnę Virgo, lista Leo chowa się i pojawia:
  1. <select name="more" id="virgo" size="1">
  2. <optgroup label="Tell me exacly about your virgo sign:">
  3. <option value="first">"I am from August</option>
  4. <option value="second">"I am' from September"</option>
  5. </select>


Będę wdzięczny za wszelkie wskazówki...
askone
Hej

Zobacz tutaj

Pozdrawiam
cachaito
Dziękuje askone. Skrypty naprawdę świetne. Chciałbym jednak dalej pociągnąć ten wątek. Podane przez Ciebie pluginy to gotowe rozwiązania a Chained Selects jQuery Plugin to istna perełka. Myślałem nad tym problemem i myślę, że można go rozwiązać prościej. Kłopot w tym, iż nie umiem pisać świetnie w jQuery. Zamysł jednak mam (a nawet dwa) tylko, że nic nie działa :-(

dodajemy do optiona w select name="zodiac" klasę "znak1" i:
  1. $('.znak1').click(function(){ $('#leo').slideToggle('slow');


albo:
  1.  
  2. if ($('#zodiac').is(':selected')) {
  3. $('.#leo').slideDown();
  4. } else {
  5. $('this').slideUp(j);
  6. }


Macie jakieś pomysły?
askone
Spróbuj tak:
[JAVASCRIPT] pobierz, plaintext
  1. if ($("select[name='zodiac']").is(':selected'))
  2. {
  3. $('#leo').slideDown();
  4. } else {
  5. $(this).slideUp(j);
  6. }
[JAVASCRIPT] pobierz, plaintext


A poza tym to czytaj dokumentację, szczególnie dział o selektorach bo je mylisz winksmiley.jpg

Pozdrawiam
cachaito
Nie działa :-/
askone
Spróbujmy inaczej:

[JAVASCRIPT] pobierz, plaintext
  1. $("#zodiac").change(function(){
  2. if($(this).val == 'leo')
  3. {
  4. $("#virgo").slideUp('slow', function(){ $("#leo").slideDown('slow');});
  5. }
  6. else
  7. {
  8. $("#leo").slideUp('slow', function(){ $("#virgo").slideDown('slow');});
  9. }
  10. });
[JAVASCRIPT] pobierz, plaintext


Oczywiście standardowo pisane z palca, bez testów winksmiley.jpg Ale są szanse, iż będzie działać...

edit: pomyliłem kolejność wywołania slideUp i slideDown
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.