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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 17.09.2025 - 16:42