Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: akcja zależna od wyniku walidacji formularza HTML5
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
php programmer
Witam

Mam formularz, który po kliknięciu OK wysyła maila, a więc zanim załaduje się strona z rezultatem to trwa dwie, trzy sekundy.
A więc zrobiłem coś takiego.

  1. <input type="email" name="email" required>
  2. <input type="text" name="nazwa" required>
  3. <input type="submit" value="OK" onClick="ProszeCzekac()">


Gdzie funkcja ProszeCzekac() pokazuje DIVa z napisem "Prosze czekac".
Problem polega na tym, że jeśli ktoś nie poda wymaganego pola to HTML5 nie dopuści do wysłania formularza tylko pokaże chmurkę, że trzeba wypełnić pole.
Oczywiście w takim przypadku nie powinien pojawić się DIV z napisem "Prosze czekac", ponieważ formularz nie został jeszcze wysłany.

No i właśnie moje pytanie.
Jak sprawdzić, czy formularz przeszedł czy nie tzn
jak zrobić żeby funkcja ProszeCzekac() pokazała diva tylko gdy
formularz nie ma błędów?

pozdrawiam
rocktech.pl
Witam.

Potrzebujesz oprogramować następującą logikę:

1 ) Obserwujesz zdarzenie submit na formularzu i zapobiec wysłaniu
2 ) Wywołujesz funkcje/ obiekt walidacji
a ) true - wyświetlasz div i wysyłasz formularz
b ) false - wyświetlasz informację o błędach walidacji

Zacznij od czystego JS. Proponuję zrobić to z użyciem np. biblioteki Prototype.

[JAVASCRIPT] pobierz, plaintext
  1. var forms = document.getElementsByTagName('form');
  2. forms[1].onsubmit = obsluzFormularz;
  3.  
  4. function obsluzFormularz () {
  5.  
  6. }
[JAVASCRIPT] pobierz, plaintext
php programmer
Nie, no właśnie nie chce samodzielnie sprawdzać formularza,
chce żeby to robił HTML5, ja chce tylko w js dowiedzieć się czy formularz się zwalidował czy nie.

PS. chyba już wiem, zamiast
  1. <input type="submit value="OK" onClick="ProszeCzekac()" />


robie

  1. <form method="post" onSubmit="ProszeCzekac()">
!*!
Z tego co wiem to nie ma takiej możliwości jak używasz wyłącznie HTML5. Możesz przez JS prawdzić ich stan jeśli je wcześniej ostylujesz.
  1. input:required:invalid
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.