![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 371 Pomógł: 18 Dołączył: 23.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Uczę się powoli JavaScriptu i postanowiłem sobie zrobić walidację formularza, a każde sprawdzane pole jest sprawdzane po jego opuszczeniu (funkcja onblur) i jeśli jest źle to blokuje mi przycisk wyślij. Napisałem tak:
Proszę nie patrzeć na kryteria walidacji bo są one prowizoryczne (puste imię, imię krótsze niż 5 znaków i nazwisko tak samo). Chodzi o to, że jak wpiszę 2 błędne pola to jest ok, blokuje mi przycisk. Jeśli jednak jedno pole uzupełnię dobrze a drugie dalej nie to i tak mogę wysłać formularz, wystarczy że ominę pole niepoprawnie wypełnione. Chcę zrobić tak, żeby jeśli jest przynajmniej 1 źle wypełnione pole to żeby blokowało mi przycisk. Nie wiem jak to osiągnąć. Próbowałem dodać jeszcze 1 zmienną globalną i inkrementować ją jeśli wystąpi błąd, a później warunek, że jeśli ta zmienna jest różna od 0 to żeby blokowało, ale po pierwsze nie za dobrze to działa, po drugie jest to niedobre rozwiązanie. Kombinowałem na parę sposobów ale wynik zostaje taki sam. Nie proszę o gotowca, raczej nakierowanie (logiczne bądź językowe), bo w końcu mam się nauczyć tego języka a nie żerować na innych. Za wszelkie wskazówki będę niezmiernie wdzięczny. Pozdrawiam. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 183 Pomógł: 24 Dołączył: 4.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
no bo nie było eventu blur, dodaj dodatkowe sprawdzanie onsubmit
blur jest wtedy, gdy pole dostaje focus i go traci, stad wniosek jak nie dostał to nie stracił ediit: polecam http://www.alistapart.com/articles/inline-...n-in-web-forms/ oraz http://www.alistapart.com/articles/forward...orm-validation/ Ten post edytował kalmaceta 25.01.2011, 00:03:12 -------------------- kAlmAcetA
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 371 Pomógł: 18 Dołączył: 23.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
hmmmm... Nie bardzo rozumiem. Przecież onblur zachodzi, ale tylko na tych polach, które się wybierze.
Przykładowo: dobrze wypełnię imię, a nazwisko jest źle wypełnione, ale jako że sobie je ominę to i tak mi odblokuje przycisk. Chodzi o to, żeby JavaScript wiedział, pamiętał, że nazwisko jest błędne. Zrobiłem też formularz cały z onsubmit, ale on wiadomo, działa przy wysyłaniu wiadomości. A mi raczej chodzi o to, żeby było sprawdzane "na żywo". Tutaj jest ten formularz : formularz . W folderze 'onblur' jest formularz z onblur, a w 'onsubmit' ten drugi ![]() Dziękuję za pomoc. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 183 Pomógł: 24 Dołączył: 4.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
oblur zachodzi tylko wtedy gdy element traci focus! JavaScript zapamięta wszystko co chcesz tylko napisz co kiedy i gdzie. U Ciebie jest mała pomyłka logiczna, mogę nacisnąć wyślij, poza tym jak w artykułach, do których linki podałem nie blokuj na siłę możliwości wysłania wskaż błędy tylko, przecież o to chodzi - walidacja dalej i tak powinna być.
-------------------- kAlmAcetA
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 371 Pomógł: 18 Dołączył: 23.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
a możesz mi przybliżyć kawałek kodu gdzie ta pomyłka jest? Bo sam doszukać się nie mogę.
Czyli proponujesz, aby walidować za pomocą onsubmit i pokazywać jakie błędy się popełniło? A oprócz js używać php do sprawdzenia? pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 15:33 |