Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] dynamiczny select - pojawiający się input
devurien
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 27.03.2008

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


Dzień dobry,

mamy sobie pole select (dynamiczne), ale ze stałą 1 opcją 'Other':

  1. <options>1</options>
  2. <options>2</options>
  3. <options>Other</options>

Teraz chciałbym uzyskać taki efekt, że automatycznie po wybraniu rzeczonego 'Other' pojawi się input.
O ile wiem jak to robić dla <a> to nie wiem jak sie dobrać do tego selecta - jak wyciągnąć wartość..
Czy mógłby ktoś rzucić jakimiś wskazówkami?
I co jeśli na stronie mam kilka takich selectów i chciałbym za każdym razem mieć inne name=""..

P.S Czemu jQuery - uważam, że jest najlepiej przyswajalne IMHO..(IMG:style_emoticons/default/smile.gif)

Pozdrawiam.

Ten post edytował devurien 16.12.2009, 18:31:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
devurien
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 27.03.2008

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


Super dziękuje bardzo o to mi właśnie chodziło !:)
Teraz przejdźmy do 2 części pytania w takim razie.

Jak już nadmieniłem chciałbym aby ta funkcja była w miarę uniwersalna - posłużę się przykładem:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <script src="http://code.jquery.com/jquery-latest.js"></script>
  4.  
  5. $(document).ready(function(){
  6.  
  7. $("select").change(function () {
  8. var str = "";
  9. $("select option:selected").each(function () {
  10. if ($(this).text() == 'Other') {
  11. str += "Other: <input name="+$(this).text() + "values= "+$(this).text;
  12. }
  13. });
  14. $("#copy").html(str);
  15. })
  16. .change();
  17. });
  18. </script>
  19. div { color:red; }
  20. </style>
  21. </head>
  22. <select name="sweets">
  23. <option>Chocolate</option>
  24. <option>Candy</option>
  25. <option>Taffy</option>
  26. <option>Caramel</option>
  27. <option>Fudge</option>
  28. <option>Other</option>
  29. </select>
  30. <p id="copy"><span></span></p>
  31.  
  32. <select name="fruits">
  33. <option>Orange</option>
  34. <option>Plum</option>
  35. <option>Plum</option>
  36. <option>Cherry</option>
  37. <option>Other</option>
  38. </select>
  39. <p id="copy"><span></span></p>
  40. </body>
  41. </html>


Teraz jeśli posiadam 2 select w tym samym dokumencie, a są spójną logiczną częścią (name="fruits") - również z polem Others. Wszystko działa OK, ale wskakuję input do <p id=..> zdefiniowanego jako pierwszy - co jest logiczne.
Jak teraz mili moi zrobić aby za każdym razem wskakiwał do odpowiedniego id.
Każda zmian id niosła by ze sobą przeklepanie kodu jQuery na nowo i zmienianiu $("#copy").html(str); - jak tego uniknąć, to dodatkowy narzut obciążając dokument.
Dobrze by było aby wtedy name w inpucie zmieniało się na name selecta+$(this).text();

Ten post edytował devurien 16.12.2009, 19:57:07
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 09:24