Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Akcje wykonywane po wybraniu opcji w <SELECT>
castagir
post
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


Witam

Nie mogę znaleźć w internecie, a sam całkowicie nie mam głowy jak powinienem napisać skrypt JS aby wykrywał opcję wybraną w <SELECT>.
Dodam, że używam biblioteki JQuery.

  1. <select class="listaMozliwosci">
  2. <option value="opcja1">Wyswietl obrazki</option>
  3. <option value="opcja2">Wyswietl tekst</option>
  4. <option value="opcja3">Weź kredyt 200%</option>


Chodzi o coś takiego, że po wybraniu którejś z opcji, zostaje uruchomiona funkcja, która najpierw za pomocą testu "if(...)", sprawdza jaka opcja została wykonana a później np w odpowiednim DIV'ie umieszcza jakąś treść, lub ją wyłącza itp.

Z góry dziękuję.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Comandeer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Przyda Ci się zdarzenie change
Go to the top of the page
+Quote Post
castagir
post
Post #3





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


Wciąż nic.

Mam coś takiego:
  1. <div id="oknaDynamiczne">
  2. <div class="oknoC"> // Począwszy od tego znacznika aż po ostatni najgłębiej zagnieżdżony, jest dodawany za pomocą AJAXa.
  3. <div class="budynekAdministracyjny">
  4. <input type="hidden" value2="Miasteczko" value="SSI7" name="aktualnaInstancja">
  5. <input type="hidden" value2="0" value="0:LU01DS1" name="IDinfrastruktury">
  6. <h3>Dom Starszyzny</h3>
  7. <div class="menuBudynku">
  8. <div class="podglad">
  9. <div class="menuAdministracja">
  10. <div class="podgladAdministracja">
  11. <h3>Finanse i zasoby Miasteczko</h3>
  12. <h4 style="text-align:center;">Projekt nowej iwnestycji:</h4>
  13. <table style="margin:auto auto 20px;">
  14. <tr>
  15. <tr>
  16. <tr>
  17. <td>Rodzaj inwestycji:</td>
  18. <td>
  19. <select style="width:297px;">
  20. <option value="wybierzInwestycje">Wybierz rodzaj inwestycji</option>
  21. <option value="INW01infr">Infrastruktura</option>
  22. </td>
  23. </tr>
  24. <div class="rozwiniecieInwestycji"></div>
  25. <table style="width:580px;margin:auto;">
  26. <table style="width:580px;margin:auto;">
  27. <table style="width:600px;border:1px solid black;text-align:center;margin:auto auto 30px;">
  28. <table style="width:600px;border:1px solid black;text-align:center;margin:auto auto 30px;">
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. </div>



Problem jest w tym, że zwykłe change nie działa, gdy cały select znajduje się od początku na stronie, lecz moja strona jest uzupełniana dynamicznie za pomocą AJAXa.
Próbowałem także z kombinacją:
  1. $('#oknaDynamiczne').on('change', '.rodzajInwestycji', function(){


Nie mam pojęcia co robić. Chyba rzucę to w **** i wyjadę w Bieszczady.

Ten post edytował castagir 25.07.2015, 16:03:48
Go to the top of the page
+Quote Post
ctom
post
Post #4





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

Ostrzeżenie: (0%)
-----


to może dodaj tą klasę "rodzajInwestycji" to swojego selecta .... bo delegujesz event do obiektu, którego nie ma w Twoim kodzie
Go to the top of the page
+Quote Post
castagir
post
Post #5





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


fakt. Nie dodałem class do znacnzika SELECT.

Mimo to wciąż nic się nie dzieje. Ani rozwiązanie:
  1. $('#oknaDynamiczne').on('change', '.rodzajInwestycji', function(){...});


ani:
  1. $('.rodzajInwestycji').change(function(){...});
Go to the top of the page
+Quote Post
ctom
post
Post #6





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

Ostrzeżenie: (0%)
-----


hmm.. gdy ładujesz dynamicznie pierwsza opcja powinna działać ... druga nie ...

ale tego div#oknaDynamiczne masz od początku i do niego ładujesz content ?
Go to the top of the page
+Quote Post
castagir
post
Post #7





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


div #oknaDynamiczne jest od samego początku.

Ładuję wszystkie funkcje za pomocą pierwszego sposobu, ładując content włąśnie od tego diva i działają. Nie wiem dlaczego to akurat nie działa
Go to the top of the page
+Quote Post
ctom
post
Post #8





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

Ostrzeżenie: (0%)
-----


może tak głupio zapytam - ale skąd wiesz, że nie działa ? wypluwasz coś sobie do konsoli by to sprawdzić ?
Go to the top of the page
+Quote Post
castagir
post
Post #9





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


zawsze dodaje w funkcji alert z jakimś napisem, na znak, że funkcja zadziałała. Niestety nic się nie pokazuje

Ten post edytował castagir 25.07.2015, 18:16:45
Go to the top of the page
+Quote Post
ctom
post
Post #10





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

Ostrzeżenie: (0%)
-----


a sprawdzałeś gdy się zaladuje ajax i w konsoli dasz $('#oknaDynamiczne').on('change', '.rodzajInwestycji', function(){ alert('zmiana'); });
to masz alert przy zmianie , tak ?
Go to the top of the page
+Quote Post
castagir
post
Post #11





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


Działa wreszcie. Będę musiał po prostu funkcję umieścić w poprzednim zapytaniu ajaxa i po problemie (IMG:style_emoticons/default/biggrin.gif)
Dzięki za pomoc i czas poświęcony.
Go to the top of the page
+Quote Post
ctom
post
Post #12





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

Ostrzeżenie: (0%)
-----


to Ty dynamicznie też dodajesz JS a nie sam content ?
jak już skończysz podeślij mi link na PW - z czystej ciekawości chciałbym zobaczyć ten problem :-)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 30.12.2025 - 05:10