Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] Pętla działająca na elementach formularza
m.e.n.t.o.s.
post 30.12.2009, 19:32:18
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.11.2009

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


Jakoś nie mogę ogarnąć tematu sam. Wiem, że kod napisany przeze mnie jest zły, ale nie potrafie w tej chwili go poprawić.

  1. var default_value = {
  2. "#tresc" : "Wpisz treść komentarza...",
  3. "#log" : "Podaj login...",
  4. "#pass" : "Podaj hasło",
  5. "#autor" : "Podaj imię...",
  6. "#miejscowosc" : "Podaj miejscowość...",
  7. "#mail" : "Podaj e-mail...",
  8. "#www" : "Podaj adres strony www...",
  9. "#captcha" : "KOD"
  10. };
  11.  
  12. $(document).ready(
  13. function()
  14. {
  15. for(var selector in default_value)
  16. {
  17. $(selector).val(default_value[selector]).focus(function() {
  18. if($(this).val() == default_value[selector])
  19. $(this).val('');
  20. $(this).addClass("focus");
  21. $(this).blur(function() {
  22. if($(this).val() == '')
  23. $(this).val(default_value[selector]);
  24. $(this).removeClass("focus");
  25. });
  26. });
  27. }
  28. });



W tablicy asocjacyjnej przechowuje identyfikatory inputów i textarea oraz domyślną treść mającą się w nich wyświetlać. Po kliknięciu na inputa tekst ma zniknąć. Jednak tak się nie dzieje.

Oto działający kod dla pojedyńczego inputa:
  1. $("#log").val('Podaj login').focus(
  2. function()
  3. {
  4. if($(this).val() == 'Podaj login')
  5. $(this).val('');
  6. $(this).addClass("focus");
  7. $(this).blur(
  8. function()
  9. {
  10. if($(this).val() == '')
  11. $(this).val('Podaj login');
  12. $(this).removeClass("focus");
  13. });
  14. });


Nie chce pisać tego samego kodu dla każdego pola formularza, bo w końcu istnieje coś takiego jak pętla.

Ten post edytował m.e.n.t.o.s. 30.12.2009, 19:33:33
Go to the top of the page
+Quote Post
taktu
post 31.12.2009, 17:16:24
Post #2





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 19.05.2008

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


spróbuj z each


--------------------
Go to the top of the page
+Quote Post
m.e.n.t.o.s.
post 2.01.2010, 10:41:42
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.11.2009

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


Dzięki kolego za podpowiedź. Działa smile.gif

Poniżej wklejam kod, może się komuś przyda:
  1. var default_value = {
  2. "#tresc" : "Wpisz treść komentarza...",
  3. "#log" : "Podaj login...",
  4. "#pass" : "Podaj hasło",
  5. "#autor" : "Podaj imię...",
  6. "#miejscowosc" : "Podaj miejscowość...",
  7. "#mail" : "Podaj e-mail...",
  8. "#www" : "Podaj adres strony www...",
  9. "#captcha" : "KOD"
  10. };
  11. $(document).ready(
  12. function()
  13. {
  14. $.each(default_value, function(selector, value) {
  15. $(selector).val(value).focus(function() {
  16. if($(this).val() == value)
  17. $(this).val('');
  18. $(this).addClass("focus");
  19. $(this).blur(function() {
  20. if($(this).val() == '')
  21. $(this).val(value);
  22. $(this).removeClass("focus");
  23. });
  24. });
  25. });
  26.  
  27. });


Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 03:46