Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js] Formularz - Poprawność
nieraczek
post
Post #1





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


Jak zrobić w javascript, że mając formularz po kliknięciu na przycisk "wyślij" następuje sprawdzenie czy wpisano we wszystkie pola formularza dane, ale w ten sposób, że jesli nie wpisano czegoś w dane pole to bezpośrednio przy nim wyświetlany jest komunikat, np. "Wpisz imię"; "Wpisz nazwisko" ? Wszędzie gdzie szukam to jest to zrobione, że jest wyświetlany MessageBox, że nie wypełniono pól a ja bym chciał żeby odpowiedni napis pojawiał się obok danego niewypełnionego pola - np. w labelu - etykiecie czy czymś podobnym - jak to zrobić ?
Wycinek kodu:
  1. <script type="text/javascript">
  2. function funkcja()
  3. {
  4.  
  5. if(document.formularz.imie.value=="")
  6. {
  7.  
  8. }
  9.  
  10. if(document.formularz.nazwisko.value=="")
  11. {
  12.  
  13. }
  14.  
  15. }
  16. </head>
  17.  
  18.  
  19. <p>
  20. <form name="formularz">
  21. <tr>
  22. <td>Wpisz imię</td>
  23. <td> <input type="text" name="imie" size="20" maxlength="20"/></td>
  24. <td><label></label></td>
  25. </tr>
  26.  
  27. <tr>
  28. <td>Wpisz nazwisko</td>
  29. <td> <input type="text" name="nazwisko" size="20" maxlength="20"/></td>
  30. <td><label></label></td>
  31. </tr>
  32.  
  33. <tr>
  34. <td><input type="submit" name="wyslij" value="Wyślij" onClick="funkcja();"/></td>
  35. <td><input type="reset" name="reset" value="Reset" /></td>
  36. </tr>
  37. </form>


Ten post edytował nieraczek 9.08.2007, 14:47:43
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Nadaj labelowi atrybut id=imie_label, potem, gdy jest błąd, pobieraj ten label wg id i poprzez innerHTML wstaw tekst. Tu nie ma wiele kombinowania.

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
nieraczek
post
Post #3





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


ale
  1. document.getElementById("imie_label").innerHTML="ppppppp";
to sprawia, że tekst "ppppp" pojawia się na labelu tylko na moment i znika
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Oj. Dodaj wywołanie tej funckji do tagu
  1. <form onSubmit="funkcja()">

i jak jest błąd, to zwracaj false - formularz się nie wyśle


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
nieraczek
post
Post #5





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


Dzięki, a jak zrobić żeby np. jak ktoś wyłączy w przeglądarce JavaScript to formularz po kliknięciu na "wyślij" się nie wysyłał - bo teraz jak ktoś wyłącza js to formularz się wysyła:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Dwa</title>
  5. <style type="text/css">
  6.  
  7. body
  8. {
  9. background-color: #FF9966;
  10. }
  11.  
  12. .czerwien
  13. {
  14. color: #FF0000;
  15. }
  16.  
  17.  
  18.  
  19.  
  20. <script type="text/javascript">
  21. //czyszczenie etykiet po wciśnięciu na "reset":
  22. function czyszczenie()
  23. {
  24. document.getElementById("imie_label").innerHTML="";
  25. document.getElementById("email_label").innerHTML="";
  26. document.getElementById("liczba_label").innerHTML="";
  27. }
  28.  
  29.  
  30. function funkcja()
  31. {
  32.  
  33. //wyczyszczenie napisów na etykietach:
  34. document.getElementById("imie_label").innerHTML="";
  35. document.getElementById("email_label").innerHTML="";
  36. document.getElementById("liczba_label").innerHTML="";
  37.  
  38. var bledy=1; //deklaracja zmiennej "bledy": 0-błędy są; 1-brak błędów
  39.  
  40. //jeśli pole tekstowe "imie" jest puste to wyświetl komunikat błędu:
  41. if(document.formularz.imie.value=="")
  42. {
  43. document.getElementById("imie_label").innerHTML="Wpisz imię.";
  44. bledy=0;
  45. }
  46.  
  47. //jeśli pole tekstowe "email" jest puste lub nie ma w nim "@" to wyświetl komunikat błedu:
  48. if(document.formularz.email.value=="" || document.formularz.email.value.indexOf('@')==-1)
  49. {
  50. document.getElementById("email_label").innerHTML="Wpisz poprawny email.";
  51. bledy=0;
  52. }
  53.  
  54. //jeśli nie wpisano liczby to zostaje wyświetlony komunikat błędu:
  55. if(document.formularz.liczba.value=="" || isNaN(document.formularz.liczba.value)==true)
  56. {
  57. document.getElementById("liczba_label").innerHTML="Wpisz liczbę.";
  58. bledy=0;
  59. }
  60.  
  61.  
  62. if (bledy==0) return false; //zwróć "false" a tym samym nie wysyłaj formularza
  63. else return true; //zwróć "true" a tym samym wyślij formularz
  64. }
  65.  
  66. </head>
  67.  
  68.  
  69.  
  70. <!--"onSubmit="return funkcja();"" W przypadku, gdy dane zawarte w formularzu spełniają nakładane ograniczenia po naciśnięciu przycisku "Wyślij", wynikiem funkcji jest wartość true-formularz zostaje wysłany,
  71. w przeciwnym razie — false i formularz nie zostaje wysłany -->
  72. <form name="formularz" action="mailto:xxx@wp.pl" method="post" onsubmit="return funkcja();">
  73.  
  74. <tr>
  75. <td>Wpisz imię</td>
  76. <td> <input type="text" name="imie" size="20" maxlength="20"/></td>
  77. <td class="czerwien"><label id="imie_label"></label></td>
  78. </tr>
  79.  
  80. <tr>
  81. <td>Wpisz email</td>
  82. <td> <input type="text" name="email" size="20" maxlength="20"/></td>
  83. <td class="czerwien"><label id="email_label"></label></td>
  84. </tr>
  85.  
  86. <tr>
  87. <td>Wpisz liczbę</td>
  88. <td> <input type="text" name="liczba" size="20" maxlength="20"/></td>
  89. <td class="czerwien"><label id="liczba_label"></label></td>
  90. </tr>
  91.  
  92. <tr>
  93. <td><input type="submit" name="wyslij" value="Wyślij"/></td>
  94. <td><input type="reset" name="reset" value="Reset" onclick="czyszczenie();"/></td>
  95. <!--button "reset" nie czyści etykiet więc samemu trza je wyczyścić przy użyciu funkcji "czyszczenie();" -->
  96. </tr>
  97.  
  98. </form>
  99.  
  100.  
  101. </body>
  102. </html>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 11:35