Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][JavaScript] Jquery a opuszczenie pola formularza
Forum PHP.pl > Forum > Przedszkole
pjamalia
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?questionmark.gif

podrawiam
nospor
Poczytaj o dostępnych zdarzeniach... ich naprawdę nie jest dużo.
Zdarzenie ONBLUR. A dla jQuery poprostu BLUR
pjamalia
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. );
nospor
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.
pjamalia
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. )}
nospor
$("#name_error").toggle("slow",function()
Nie toggle a show. Przecież chcesz to pole pokazać, a nie toglować
pjamalia
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
nospor
Przecież dla show też określać możesz prędkość.
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.