Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> formularz + js
attimo
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

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


Witam,

Chce zrobić formularz który przy błędnym wpisaniu któregoś z pól nie będzie odświeżał strony tylko wyświetli komunikat gdzie znajduje się błąd.

Formularz wygląda tak:
  1. <form action = "<? echo $_SERVER['PHP_SELF'];?>"method = "post" name="forma" onsubmit="sprawdz()" >

poniżej pola np.
  1. <input type='text' name='imie'/>
  2. <input type='submit' name='ok' value='ok'/>


kod js

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. function sprawdz()
  3. {
  4. var imie = document.forms['forma']["imie"].value;
  5. if (imie == "")
  6. {
  7. alert("nic nie wpisales");
  8. }
  9. }
  10. </script>
[JAVASCRIPT] pobierz, plaintext


Nie sugerujcie się treścią to tylko prosty przykład opisujący mój problem polegający na tym, że strona się odświeża a chce aby wyświetlił sie tylko błąd bez odświerzania.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
QooBooS
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 1
Dołączył: 15.10.2008

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


Witam.
Wystarczy dodać mały szczegół - return.
Oprócz tego proponuję zrobić to nieco inaczej:
funkcję niech wywołuje wciśnięcie przycisku 'OK', a nie zdarzenie onSubmit formularza.
Będzie to wyglądało tak:
Z form usuwasz zdarzenie onSubmit:
  1. <form action = "<? echo $_SERVER['PHP_SELF'];?>"method = "post" name="forma">

Do przycisku 'OK' dodajesz onClick i zmieniasz go z type='submit' na type='button':
  1. <input type='button' name='ok' value='OK' onClick='return sprawdz();'/>

A w funkcji dodajesz odpowiednio:
  1. <script type="text/javascript">
  2. function sprawdz(){
  3. var imie = document.forms['forma']["imie"].value;
  4. var nazwisko = document.forms['forma']['nazwisko'].value;
  5. if (imie == "")
  6. {
  7. alert("Nie wpisales imienia!");
  8. return false;
  9. } else if (nazwisko == "")
  10. {
  11. alert("Nie wpisales nazwiska!");
  12. return false;
  13. } else {
  14. return true;
  15. document.forms['forma'].submit();
  16. }

Co tu zrobiłem:
Sprawdzasz każde pole z osobna. Jeśli jest puste, wyświetlasz komunikat i nie wysyłasz formularza, a jeśli wszystkie są wypełnione - zwraca true i wykonuje submit() dla formularza (innymi słowy - wysyła go (IMG:style_emoticons/default/smile.gif) ). Pole nazwisko wymyśliłem, żeby pokazać Ci, jak to wygląda z większą ilością pól.
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 08:24