Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript]Niedziałaj±ca walidacja w formularzu
Forum PHP.pl > Forum > Przedszkole
tejek
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>
sticker
no ale w czym problem?
-tejek-
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
SirZooro
Spróbuj to podpi±ć pod zdarzenie onsubmit formularza.
-tejek-
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 :/
SirZooro
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.
tejek
Poprawiłem to ale nie pomogło ;/
paziek
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>
tejek
Musiałem wprowadzić kilka poprawek ale wielkie dzięki za naprowadzenie. Wszystko już ładnie działa biggrin.gif
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.