Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][JavaScript] Jquery a opuszczenie pola formularza
pjamalia
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 1.11.2009

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


Witam,

Piszać walidację wprowadzanych danych w formularzu, nie mogę znaleźć zdarzenia które umożliwi nastęoującą funkcjonalność:

Podaję ciąg znaków w polu formularza.
Podczas kiedy kursor opuści formularz przy pomocy myszki bądź tabulatorem, poprostu przejdę do kolejnego to ma sprawdzić w tym upuszczanym czy pole zostało wypełnione. Czy możę mi ktoś podpowiedzieć jak zrobić taki fajny myk?(IMG:style_emoticons/default/questionmark.gif)

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





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Poczytaj o dostępnych zdarzeniach... ich naprawdę nie jest dużo.
Zdarzenie ONBLUR. A dla jQuery poprostu BLUR
Go to the top of the page
+Quote Post
pjamalia
post
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 1.11.2009

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


Mam już coś takiego, w zasadzie zrobiłem też na live("focusout mouseout",...) ale przychyliłem się do blur:
Problemik w tym, że dopiero za drugim razem po opuszczeniu pola skrypt zaczyna zaskakiwać ale i tak czy podam wartośc czy też nie podam to mam legth = 0.

kod:

  1. $(document).ready
  2. (
  3. function()
  4. {
  5. /* forma variables */
  6. var jq_name = $("#name").val();
  7. var jq_lastname = $("#lastname").val();
  8. var jq_email = $("#email").val();
  9. var jq_phone = $("#phone").val();
  10. var jq_nickname = $("#nickname").val();
  11. var jq_password = $("#password").val();
  12. var jq_reppassword = $("#reppassword").val();
  13.  
  14. /* basic validation input filled fields */
  15. $("#name").blur(
  16. function()
  17. {
  18. if(jq_name.length == 0)
  19. {
  20. $("#name_error").toggle("slow",function()
  21. {
  22. $("#name_error").text("Nie podałeś imienia: "+jq_name.length);
  23. $("#name_error").css("opacity","0.6");
  24. });
  25. }
  26. else
  27. {
  28. $("#name_error").toggle("slow",function()
  29. {
  30. $("#name_error").text("ACCEPT !!!: "+jq_name.length);
  31. $("#name_error").css("opacity","0.6");
  32. });
  33. }
  34. }
  35. )}
  36.  
  37. );
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tu sprawdzasz wartość pola
if(jq_name.length == 0)
ale tę wartosc pobierasz o tu:
var jq_name = $("#name").val();
na dużo wcześniej zanim wystąpił blur. Przecież to jest totalnie bezsensu....Wartosc pola masz pobierać w momecie BLUR a nie przed.
Go to the top of the page
+Quote Post
pjamalia
post
Post #5





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 1.11.2009

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


Pomyślałem że pobiorę wartości do "globalnych zmiennych" w kolejnym etapie będę tylko sprawdzał długośc stinga. OK skoro tak musi być, niech będzie w zasadzie zaczęło prażyć odczytuje mi prawidłowo length z tym, że problem z podwójnym opuszczaniem tego pola istnieje. Robię odświeżenie strony ustawiam kursor w polu piszę. trzaskam tabulator i nic. Następnie wracam trzaskam tabulator i wtedy załapuje za drugim razem. Wiesz może dlaczego. Piszę o tych problemach w przedszkolu, zielonka jeszcze jestem..

zmieniony kod:

  1. $("#name").blur(
  2. function()
  3. {
  4. if($("#name").val().length == 0)
  5. {
  6. $("#name_error").toggle("slow",function()
  7. {
  8. $("#name_error").text("Nie podałeś imienia: "+$("#name").val().length);
  9. $("#name_error").css("background-color","silver");
  10. $("#name_error").css("color","black");
  11. });
  12. }
  13. else
  14. {
  15. $("#name_error").toggle("slow",function()
  16. {
  17. $("#name_error").text("ACCEPT !!!: "+$("#name").val().length);
  18. $("#name_error").css("opacity","0.6");
  19. });
  20. }
  21. }
  22. )}
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$("#name_error").toggle("slow",function()
Nie toggle a show. Przecież chcesz to pole pokazać, a nie toglować
Go to the top of the page
+Quote Post
pjamalia
post
Post #7





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 1.11.2009

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


Kurcze dzięki za pomoc, chciałem toggle ponieważ jest fajny efekt... Show to tak na sztywno się wyświetla. Dzięki jeszcze raz... Klikam na pomogł oczywiście
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przecież dla show też określać możesz prędkość.
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: 22.08.2025 - 19:03