Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obsługa inputa select
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
servs
Hej,

Potrzebuję zrobić taki mechanizm:
Jeżeli select o id select został wybrany na 7, to pokaż input o id text.

Wie ktoś może jak to szybko sklecić? Wszystko oczywiście wykonywane w czasie rzeczywistym.
Niktoś
może trochę inicjatywy z Twojej strony,bo oczekujesz chyba gotowca.Pełno jest przykładów na google.
Astarot
musisz zrobić to w JS, polecam zapoznanie się z biblioteką jQuery. Oto kod rozwiązania dla JS+jQuery żeby było elegancko bez zbędnego kodu zdarzeń w htmlu tongue.gif

  1. $(document).ready(function(){
  2.  
  3. $('#select').change(function(){
  4. if($('#select').val()==7)
  5. $('#input_id').show();
  6. });
  7.  
  8. });
servs
To mi teraz kolega namącił biggrin.gif
Spodziewałem się zwykłego JS wink.gif

A mógłby to kolega opisać jak działa i przykładowe zastosowanie?
Bo nie sztuka skopiować, a zrozumieć smile.gif
kaem
Cytat
przykładowe zastosowanie
przecież rozwiązanie Twojego problemu jest przykładowym zastosowaniem samym w sobie.
A działa dokładnie tak jak chciałeś: po wykonaniu się zdarzenia onchange na selekcie, sprawdzana jest wartość wybranej opcji, jeśli wynosi ona 7 to pokazywany jest element o id 'input_id'. Oczywiście ten element musi być za pomocą CSS wcześniej ukryty. Albo możesz sobie wygenereować takeigo inputa za pomocą funkcji add() lub append() lub pewnie paru innych.
servs
Problem polega na tym, że nie znam tego zapisu i nie wiem jak go wywołać w onchange.

Przy okazji zauważyłem, że kolega na początku napisał "Oto kod rozwiązania dla JS+jQuery żeby było elegancko bez zbędnego kodu zdarzeń w htmlu", czyli przypadkiem nie będzie zbędny onchange przy select?
Czy dobrze rozumuję, że podany kod stale nasłuchuje wartość selecta?

Prosiłbym o jakąś podpowiedź.

Oczywiście nie ukrywam, że zachęcili mnie koledzy do nauki jQuery smile.gif

Zrobiłem coś takiego:

w head dałem
  1. <script type="text/javascript">
  2. $(document).ready(function()){
  3.  
  4. $(\'#panstwo\').change(function()){
  5. if($(\'#panstwo\').val()==\'Polska\')
  6. $(\'#woj\').show();
  7. });
  8.  
  9. });
  10. </script>


I w formularzu

  1. <select name="panstwo" id="panstwo">
  2. <option value="Polska">Polska</option>
  3. <option value="Belgia">Belgia</option>
  4. <p id="woj" style="display:none;">Województwo: <select name="woj">
  5. <option value="Dolnosląskie">Dolnośląskie</option>
  6. <option value="Kujawsko-Pomorskie">Kujawsko-Pomorkie</option>
  7. </select> </p>


I jednak po wyborze Polski województwa się nie wyświetlają sad.gif
Niktoś
Przecież Astarot dał Tobie poprawną odpowiedź,a Ty żeś pododawał backslashe(ukośniki) i dodatkowo ,żeś zamkną nawiasem funkcje.
servs
A, sorry. Backslahe dałem dlatego, że oryginalnie wygląda to tak:
  1. $head = '<script type="text/javascript">
  2. $(document).ready(function(){
  3.  
  4. $(\'#panstwo\').change(function(){
  5. if($(\'#panstwo\').val()==\'Polska\')
  6. $(\'#woj\').show();
  7. });
  8.  
  9. });
  10. </script>';


Nawiasy dodałem dlatego, że faktycznie wcześniej nie popatrzyłem na składnię.
Ale tak też 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.