Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][JavaScript]Niedziałająca walidacja w formularzu
tejek
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.11.2005

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


wykonałem formularz w HTML i chciałbym do niego dodać walidację wypełnienia pól formularza oto cały kod:

  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=iso-8859-1" />
  4. <title>Formularz wysylki zdjec - m2Art</title>
  5. <link href="style.css" rel="stylesheet" type="text/css" media="all" />
  6. </head>
  7. <script language="javascript" type="text/javascript">
  8. clearForm(AForm);
  9. function validateForm(AForm)
  10. {
  11. //1. NICK ALLEGROWICZA
  12. reg1 = /^[a-zA-Z0-9aąęśćżźńłóĄĘŚĆŻŹŃŁÓ@_-.]{2,30}$/;
  13. wyn = AForm.nick.value.match(reg1);
  14. if (wyn == null) {
  15. alert("Prosze podac poprawne NICK ALLEGROWICZA. " +
  16. "NICK musi zawierac od 2 do 30 liter. " +
  17. "Zadne znaki poza literami nie sa dozwolone.");
  18. return false;
  19. }
  20. reg2 = /^[a-zA-Z0-9@._-.]{1,30}$/;
  21. wyn = AForm.email.value.match(reg2);
  22. if (wyn == null) {
  23. alert("Prosze podac poprawny adres e-mail. " +
  24. "Wprowadz e-mail jak w szablonie 'tresc@domen.pl'. " +
  25. "Wszystkie standardowe znaki sa dozwolone.");
  26. return false;
  27. }
  28. if (!(AForm.plakat.selectedIndex > 0 && AForm.plakat.selectedIndex <= 4)) {
  29. alert("Proszę wybrać województwo.");
  30. return false;
  31. };
  32.  
  33. AForm.elements['blad'].value = "Wysylanie zdjec. Prosze czekac...";
  34. return true;
  35. }
  36. function clearForm(AForm)
  37. {
  38. for (i = 0; i < AForm.elements.length; i++) {
  39. if (AForm.elements[i].type == "radio") {
  40. AForm.elements[i].checked = false;
  41. } else if (AForm.elements[i].type == "checkbox") {
  42. AForm.elements[i].checked = false;
  43. } else if (AForm.elements[i].type == "text") {
  44. AForm.elements[i].value = '';
  45. } else if (AForm.elements[i].type == "textarea") {
  46. AForm.elements[i].value = '';
  47. } else if (AForm.elements[i].type == "select-one") {
  48. AForm.elements[i].selectedIndex = 0;
  49. } else if (AForm.elements[i].type == "select-multiple") {
  50. AForm.elements[i].selectedIndex = -1;
  51. }
  52. }
  53. return true;
  54. }
  55. <form class="normal" action="uparray3.php" method="post" enctype="multipart/form-data">
  56. <tr>
  57. <td> Nick allegrowicza:
  58. <input class="formularz" type="text" name="nick"/>
  59. </td>
  60. </tr>
  61. <tr>
  62. <td> Email:
  63. <input class="formularz" type="text" name="email"/>
  64. </td>
  65. </tr>
  66. <tr>
  67. <td>Zakupiny plakat:
  68. <select class="formularz" name="plakat">
  69. <option onclick="this.form.elements['maxzd'].value = '';" value="----">----</option>
  70. <option onclick="this.form.elements['maxzd'].value = 'Maksymalnie 10 zdjec';" value="10">Dzungla</option>
  71. <option onclick="this.form.elements['maxzd'].value = 'Maksymalnie 24 zdjec';" value="24">Latorosl</option>
  72. <option onclick="this.form.elements['maxzd'].value = 'Maksymalnie 8 zdjec';" value="8">Ocean</option>
  73. <option onclick="this.form.elements['maxzd'].value = 'Maksymalnie 9 zdjec';" value="9">Balony</option>
  74. </select>
  75. </td>
  76. </tr>
  77. <tr>
  78. <td>
  79. <input class="blad" type="text" name="maxzd" readonly="readonly" />
  80. </td>
  81. </tr>
  82. <tr>
  83. <td><input type="hidden" name="MAX_FILE_SIZE" value="300000" />
  84. Wyslij nam zdjecia które chcesz umiescic na plakacie:
  85. </td>
  86. </tr>
  87. <tr>
  88. <td>
  89. Zdjecie nr 1:<br />
  90. <input type="file" name="pictures[]" width="250px" size="40" accept="image/jpeg,image/gif,image/tiff,image/png"/>
  91. </td>
  92. <td>
  93. Dodaj tekst pod zdjeciem:
  94. <input class="formularz" type="checkbox" name="checktekst[]" value="wartosc" onclick="this.form.elements['tekst0'].disabled = !this.checked"/>
  95. <input class="formularz" type="text" name="tekst0" size="40" disabled="disabled" />
  96. </td>
  97. </tr>
  98. <tr>
  99. <td>
  100. Zdjecie nr 2:<br />
  101. <input type="file" name="pictures[]" width="250px" size="40" accept="image/jpeg,image/gif,image/tiff,image/png"/>
  102. </td>
  103. <td>
  104. Dodaj tekst pod zdjeciem:
  105. <input class="formularz" type="checkbox" name="checktekst[]" value="wartosc" onclick="this.form.elements['tekst1'].disabled = !this.checked" />
  106. <input class="formularz" type="text" name="tekst1" size="40" disabled="disabled" />
  107. </td>
  108. </tr>
  109. <tr>
  110. <td>
  111. Zdjecie nr 3:<br />
  112. <input type="file" name="pictures[]" width="250px" size="40" accept="image/jpeg,image/gif,image/tiff,image/png"/>
  113. </td>
  114. <td>
  115. Dodaj tekst pod zdjeciem:
  116. <input class="formularz" type="checkbox" name="checktekst[]" value="wartosc" onclick="this.form.elements['tekst2'].disabled = !this.checked" />
  117. <input class="formularz" type="text" name="tekst2" size="40" disabled="disabled" />
  118. </td>
  119. </tr>
  120. <tr>
  121. <td>
  122. <input type="image" src="bt_wyslij.jpg" value="wyslij" name="wyslij" onclick="return validateForm(this.form);"/>
  123. <input type="image" src="bt_wyczysc.jpg" value="kasuj" name="kasuj" onclick="return clearForm(this.form);"/>
  124. </td>
  125. </tr>
  126. </table>
  127. <input class="blad" type="text" name="blad" size="50" readonly="readonly" />
  128. </form>
  129. </body>
  130. </html>
Go to the top of the page
+Quote Post
sticker
post
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


no ale w czym problem?


--------------------
Go to the top of the page
+Quote Post
--tejek--
post
Post #3





Goście







Po uruchomieniu strony i wciśnięci buttona przeładowuje sie strona bez sprawdzania czy pola są dobrze wypełnione. Wygląda to tak jakby funkcja sprawozdająca wcale nie działała.

proszę o pmoc
Go to the top of the page
+Quote Post
SirZooro
post
Post #4





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Spróbuj to podpiąć pod zdarzenie onsubmit formularza.


--------------------
Go to the top of the page
+Quote Post
--tejek--
post
Post #5





Goście







zrobiłem tak:


  1. <form class="normal" action="uparray3.php" onsubmit="return validateForm(this.form);" ..... >


a zamiast Buttonow jako btn dalem normalne:

  1. <input type="submit" name="wyslij" value="wyslij" />


i nadal nic :/
Go to the top of the page
+Quote Post
SirZooro
post
Post #6





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Sprawdziłem to dokładniej - masz błąd w wyrażeniach regularnych. Problemem jest minus w nawiasach kwadratowych który służy tam do definiowana zakresów znaków. Wstaw przed nim backslasha lub przenieś go na koniec aby za nim był już tylko nawias zamykający.


--------------------
Go to the top of the page
+Quote Post
tejek
post
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.11.2005

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


Poprawiłem to ale nie pomogło ;/
Go to the top of the page
+Quote Post
paziek
post
Post #8





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

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


Kod
function validateForm(AForm)
{
    //1. NICK ALLEGROWICZA
    var reg1 = /^[a-zA-Z0-9ąęśćżźńłóĄĘŚĆŻŹŃŁÓ@_\-.]{2,30}$/;
    wyn = AForm.nick.value.match(reg1);
    if (wyn == null) {
    alert("Prosze podac poprawne NICK ALLEGROWICZA. " +
    "NICK musi zawierac od 2 do 30 liter. " +
    "Zadne znaki poza literami nie sa dozwolone.");
    return false;
    }
    var reg2 = /^[a-zA-Z0-9@._\-.]{1,30}$/;
    wyn = AForm.email.value.match(reg2);
    if (wyn == null) {
    alert("Prosze podac poprawny adres e-mail. " +
    "Wprowadz e-mail jak w szablonie 'tresc@domen.pl'. " +
    "Wszystkie standardowe znaki sa dozwolone.");
    return false;
    }
    if (!(AForm.plakat.selectedIndex > 0 && AForm.plakat.selectedIndex <= 4)) {
    alert("Proszę wybrać województwo.");
    return false;
    };

    AForm.elements['blad'].value = "Wysylanie zdjec. Prosze czekac...";
    return true;
}

Chodziło o ten przedostatni znak -, nie te między az09
  1. <form class="normal" name="someForm" action="uparray3.php" method="post" enctype="multipart/form-data">

dodałem name=""
Kod
</form>
<script type="text/javascript">
    clearForm(document.forms.someForm);
    //musisz poczekać aż: funkcja zostanie zadeklarowana, formualarz będzie dostępny
    //nie możesz przekazywać niezadeklarowanych zmiennych jako argument (AForm), w sumie to możesz, ale wtedy nie będzie działać jak chciałeś
</script>
</body>
</html>
Go to the top of the page
+Quote Post
tejek
post
Post #9





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.11.2005

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


Musiałem wprowadzić kilka poprawek ale wielkie dzięki za naprowadzenie. Wszystko już ładnie działa biggrin.gif
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: 21.08.2025 - 06:40