Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Formularz - Poprawność
Forum PHP.pl > Forum > Przedszkole
nieraczek
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>
Cysiaczek
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.
nieraczek
ale
  1. document.getElementById("imie_label").innerHTML="ppppppp";
to sprawia, że tekst "ppppp" pojawia się na labelu tylko na moment i znika
Cysiaczek
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
nieraczek
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>
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.