Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
apup
Witam,
chciałem napisać kod sprawdzający poprawności wypełnionych pól w formularzu za pomocą javascript. Jednak nie działa. Po wpisaniu błędnych danych nic się nie dzieje. Powinno pojawić się okno z opisem źle wypełnionych pól, lecz nie pojawia się.

Poniżej umieszczać kod z pliku php oraz dołączonego do niego pliku pliku js.

Plik php.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <script language="javascript1.2" src="source.js" type="application/javascript"></script>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Untitled Document</title>
  6. </head>
  7.  
  8. <script language="javascript1.2" type="application/javascript">
  9. function check_valid(form) {
  10. var error = "";
  11. error += verify_username(form.username.value);
  12. error += verify_password(form.password.value);
  13. error += verify_phone(form.phone.value);
  14. error += verify_email(form.email.value);
  15. if (error != "") {
  16. alert(error);
  17. return false;
  18. }
  19. return true;
  20. }
  21.  
  22. <body bgcolor="#FFFFFF">
  23.  
  24. <form action="process.php" method="post" onsubmit="return check_valid(this)" id="test1" name="test1">
  25. <table border="0" width="100%" cellspacing="0" cellpadding="0">
  26. <tr>
  27. <td width="30%" align="right">Nazwa użytkownika</td>
  28. <td width="70%">: <input type="text" name="username" /></td>
  29. </tr>
  30. <tr>
  31. <td align="right">Hasło</td>
  32. <td>: <input type="password" name="password" /></td>
  33. </tr>
  34. <tr>
  35. <td align="right">Telefon</td>
  36. <td>: <input type="text" name="phone" /></td>
  37. </tr>
  38. <tr>
  39. <td align="right">Email</td>
  40. <td>: <input type="text" name="email" /></td>
  41. </tr>
  42. <tr>
  43. <td>&nbsp;</td>
  44. <td><input type="submit" value="Zatwierdz" /></td>
  45. </tr>
  46. </table>
  47. </form>
  48.  
  49. </body>
  50. </html>


Plik js.
Kod
function verify_username (strng) {
       var error = "";
       if (strng == "") {
           error = "Nie wprowadzono nazwy użytkownika.\n";
       }
           var illegalChars = /\W/;
           if ((strng.length < 6) || (strng.length > 10)) {
               error = "Nazwa użytkownika ma nieprawodłow długość. Długość nazwy użytkownika musi mieścić się w zakresie od 6-10 znaków.\n";
           }
           else if (illegalChars.test(strng)) {
               error = "Nazwa użytkownika zawiera niedozwolone znaki.\n";
           }
       return error;
       }
      
   function verify_password (strng) {
       var error = "";
       if (strng == "") {
           error = "Nie wprowadzone haslo";
       }
           var illegalChars = /[\W_]/;
           if ((strng.length < 6) || (strng.length > 8)) {
               error = "Hasło ma nieprawodłow długość. Dlugość hasła musi mieścić się w zakresie od 6 do 8 znaków.\n";
           }
           else if (illegal.Chars.test(strng)) {
               error = "Hasło zawiera niedozlowone znaki.\n";
           }
           else if (!((strng.search(/(a-z)+/)) && (strng.search(/(A-Z)+/)) && (strng.search(/(0-9)+/)))) {
               error = "W haśle musi się znaleźć co najmniej jedna wielka litera, jedna mała litera i jedna cyfra.\n";
           }
       return error;
       }
  
   function verify_email (strng) {
       var error  = "";
       if (strng == "") {
           error = "Nie wprowadzono adresu e-mail użytkownika.\n";
       }
           var emailFilter=/^.+@.+\..{2,4}$/;
           if (!(emailFilter.test(strng))) {
               error = "Prosze wprowadzić prawidłowy adres email.\n";
           }
           else {
               var illegalChars = /[\(\)\<\>\,\;\:\\\"\[\]]/;
               if (strng.match(illegalChars)) {
                   error = "Adres email zawiera niedozwolone znaki.\n";
               }
           }
       return error;
       }
  
   function verify_phone (strng) {
       var error = "";
       if (strng = "") {
           error = "Nie wprowadzono numeru telefonu.\n";
       }
           var stripped = strng.replace(/[\(\)\.\-\ ]/g, '');
               if (isNaN(parseInt(stripped))) {
                   error = "Numer telefonu zawieta niedozwolone znaki.\n";
               }
               if (!(stripped.length == 10)) {
                   error = "Numer telefonu ma nieprawidłow długość. Należy wprowadzić numer telefonu wraz z numerem kierunkowym.\n";
               }
           return error;
           }
   }


Z góry dziękuję za pomoc.
Pawel_W
masz o 1 } za dużo ;]

cały skrypt:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <script type="text/javascript">
  4. function verify_username (strng) {
  5. var error = "";
  6. if (strng == "") {
  7. error = "Nie wprowadzono nazwy użytkownika.\n";
  8. }
  9. var illegalChars = /\W/;
  10. if ((strng.length < 6) || (strng.length > 10)) {
  11. error = "Nazwa użytkownika ma nieprawodłow długość. Długość nazwy użytkownika musi mieścić się w zakresie od 6-10 znaków.\n";
  12. }
  13. else if (illegalChars.test(strng)) {
  14. error = "Nazwa użytkownika zawiera niedozwolone znaki.\n";
  15. }
  16. return error;
  17. }
  18.  
  19. function verify_password (strng) {
  20. var error = "";
  21. if (strng == "") {
  22. error = "Nie wprowadzone haslo";
  23. }
  24. var illegalChars = /[\W_]/;
  25. if ((strng.length < 6) || (strng.length > 8)) {
  26. error = "Hasło ma nieprawodłow długość. Dlugość hasła musi mieścić się w zakresie od 6 do 8 znaków.\n";
  27. }
  28. else if (illegal.Chars.test(strng)) {
  29. error = "Hasło zawiera niedozlowone znaki.\n";
  30. }
  31. else if (!((strng.search(/(a-z)+/)) && (strng.search(/(A-Z)+/)) && (strng.search(/(0-9)+/)))) {
  32. error = "W haśle musi się znaleźć co najmniej jedna wielka litera, jedna mała litera i jedna cyfra.\n";
  33. }
  34. return error;
  35. }
  36.  
  37. function verify_email (strng) {
  38. var error = "";
  39. if (strng == "") {
  40. error = "Nie wprowadzono adresu e-mail użytkownika.\n";
  41. }
  42. var emailFilter=/^.+@.+\..{2,4}$/;
  43. if (!(emailFilter.test(strng))) {
  44. error = "Prosze wprowadzić prawidłowy adres email.\n";
  45. }
  46. else {
  47. var illegalChars = /[\(\)\<\>\,\;\:\\\"\[\]]/;
  48. if (strng.match(illegalChars)) {
  49. error = "Adres email zawiera niedozwolone znaki.\n";
  50. }
  51. }
  52. return error;
  53. }
  54. function verify_phone (strng) {
  55. var error = "";
  56. if (strng = "") {
  57. error = "Nie wprowadzono numeru telefonu.\n";
  58. }
  59. var stripped = strng.replace(/[\(\)\.\-\ ]/g, '');
  60. if (isNaN(parseInt(stripped))) {
  61. error = "Numer telefonu zawieta niedozwolone znaki.\n";
  62. }
  63. if (!(stripped.length == 10)) {
  64. error = "Numer telefonu ma nieprawidłow długość. Należy wprowadzić numer telefonu wraz z numerem kierunkowym.\n";
  65. }
  66. return error;
  67. }
  68. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  69. <title>Untitled Document</title>
  70. </head>
  71.  
  72. <body bgcolor="#FFFFFF">
  73. <script type="text/javascript">
  74. function check_valid(obj) {
  75. var error = "";
  76. error += verify_username(obj.username.value);
  77. error += verify_password(obj.password.value);
  78. error += verify_phone(obj.phone.value);
  79. error += verify_email(obj.email.value);
  80. if (error != "") {
  81. alert(error);
  82. return false;
  83. }
  84. return true;
  85. }
  86. <form action="process.php" method="post" onsubmit="return check_valid(this)" id="test1" name="test1">
  87. <table border="0" width="100%" cellspacing="0" cellpadding="0">
  88. <tr>
  89. <td width="30%" align="right">Nazwa użytkownika</td>
  90. <td width="70%">: <input type="text" name="username" /></td>
  91. </tr>
  92. <tr>
  93. <td align="right">Hasło</td>
  94. <td>: <input type="password" name="password" /></td>
  95. </tr>
  96. <tr>
  97. <td align="right">Telefon</td>
  98. <td>: <input type="text" name="phone" /></td>
  99. </tr>
  100. <tr>
  101. <td align="right">Email</td>
  102. <td>: <input type="text" name="email" /></td>
  103. </tr>
  104. <tr>
  105. <td>&nbsp;</td>
  106. <td><input type="submit" value="Zatwierdz" /></td>
  107. </tr>
  108. </form>
  109.  
  110. </body>
  111. </html>
apup
Dzieki wielkie exclamation.gif

Nie mogłem tego znaleść przez tydzien.

Jesli mozesz tylko powiedziec w ktorym to bylo miejscu w oryginale winksmiley.jpg
Pawel_W
w pliku .js usun ostatni }

a w .html pozamieniaj script type="application/javascript" na "text/javascript"
apup
Dzięki wielkie winksmiley.jpg Teraz wszystko pięknie działa.
simsonen
Witam,
je również mam problem z walidacją formularza ale troche z innej beczki.
Mianowicie jeśli początek dokumentu rozpoczynam od
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">

to walidacja nie działa;
jeśli z kolei wstawię same

to wszystko jest ok ale wtedy css się wywalają. Szukałem przyczyny pół dnia w necie ale jestem bezradny sad.gif
Co najgorsze w literaturze jest pierwsza wersja stosowana sad.gif
Proszę o pomoc a jeśli będzie potrzeba to wrzucę kody źródłowe plików.
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.