Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie pola w formularzu
Darkhijacker
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 14.10.2007

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


Zrobiłem formularz:

  1. <head>
  2. </head>
  3. <body style="background-color:#656565;" onload="fokus('tytul');">
  4.  
  5. <script language="javascript" type="text/javascript">
  6.  
  7. function insert_form(tytul, rozdzielczosc, gatunek, producent, link, screen, opis)
  8. {
  9. opener.document.forms['post'].message.value += "[tytul]" + tytul + "[/tytul]\n\n[rozdzielczosc]" + rozdzielczosc + "[/rozdzielczosc]\n[gatunek]" + gatunek + "[/gatunek]\n[producent]" + producent + "[/producent]\n\n[link]" + link + "[/link]\n\n[screen]" + screen + "[/screen]\n\n[opis]" + opis + "[/opis]";
  10. opener.focus();
  11. window.close();
  12. }
  13.  
  14. function validateForm(f){
  15. var i,e=f.elements,puste=false
  16. var pola=['tytul']
  17. for(i=pola.length-1; i>=0; --i)
  18. if(e[pola[i]].value!='') e[pola[i]].style.border='1px solid #7B9EBD'
  19. else{
  20. puste=true
  21. e[pola[i]].style.border='1px solid #ff9900'
  22. }
  23. if(puste) alert('Musisz wypełnić wszystkie pola')
  24. return !puste}
  25.  
  26. </script>
  27. <table border="1" width="90%" style="background-image: url(backs.gif); background-repeat: repeat-x; background-color:#efefef;"><tr style="background-color:#efefef;"><td style="background-color:#efefef;">
  28. <b><fieldset><legend align="center" style="font-weight: bold; font-size: 18px; font-family: 'Trebuchet MS',Verdana, Arial, Helvetica, sans-serif; text-decoration: none; line-height : 120%; color : #040404;">Formularz wstawiania gry:</b></legend>
  29.  
  30. <form name="formularz" id="formularz" enctype="multipart/form-data" action="http://domena.com/index.php" onsubmit="return validateForm(this)">
  31.  
  32. <p>Tytuł gry<span style="color:red;"> *</span> : <span class="postrow"><input type="text" name="tytul" size="20" style="vertical-align:middle;"></span>
  33. </p>
  34. <p>Rozdzielczość : <span class="postrow"><select name="rozdzielczosc" size="1" style="vertical-align:middle;">
  35. <option>128x128</option>
  36. <option>130x130</option>
  37. <option>128x160</option>
  38. <option>132x176</option>
  39. <option>176x208</option>
  40. <option>176x220</option>
  41. <option>240x320</option>
  42. <option>352x416</option>
  43. </select></span></p>
  44. <p>Gatunek gry : <span class="postrow"><select name="gatunek" size="1" style="vertical-align:middle;">
  45. <option>Zręcznościowa</option>
  46. <option>Strategiczna</option>
  47. <option>RPG</option>
  48. <option>Logiczna</option>
  49. <option>Sportowa</option>
  50. <option>Bijatyka</option>
  51. <option>Erotyczna</option>
  52. <option>Platformowa</option>
  53. <option>Wyścigi</option>
  54. <option>Przygodowa</option>
  55. </select></span></p>
  56. <p>Producent : <span class="postrow"><input type="text" name="producent" size="20" style="vertical-align:middle;">
  57. </p>
  58. <span class="postrow"><p>Link do pliku jar<span style="color:red;"> *</span> : <input type="text" name="link" size="20" style="vertical-align:middle;"></span>&nbsp;&nbsp;<button class="buttonik" type="button" onClick="window.open('http://domena.com','mywindow','width=0,height=0')" name="uploader" style="vertical-align:middle;">Uploader</button>
  59. </p>
  60. <p>Link do screenu z gry : <span class="postrow"><input type="text" name="screen" size="20" style="vertical-align:middle;">
  61. </p>
  62. Skrótowy opis gry :
  63. <textarea name="opis" cols="56" rows="3"></textarea>
  64.  
  65.  
  66. <button type="submit" class="buttonik" value="Wstaw" onClick="return validateForm(f);" onClick="insert_form(this.form.tytul.value, this.form.rozdzielczosc.value, this.form.gatunek.value, this.form.producent.value, this.form.link.value, this.form.screen.value, this.form.opis.value); return false;">Wstaw grę</button>
  67. <button type="reset" class="buttonik" value="Wyczyść">Wyczyść</button>
  68.  
  69. </td></tr>
  70. </form>
  71. </body>
  72. </html>


Przy naciśnięciu buttona "Wstaw grę" skrypt sprawdza czy pole "tytul" jest puste. Jeśli jest puste wyskuje powiadomienie "Musisz wypełnić wszystkie pola", po wypełnieniu jego, klikam ponownie we "Wstaw grę", tym razem już powiadomienie nie wyskakuje, ale button nie chce działać, czyli przenosi mnie na stronę błędu. Zdaje mi się, że onClick="return validateForm(f);" "gryzie" się z onClick="insert_form(this.form.tytul.value, ........ this.form.opis.value); return false;"
Ponieważ, gdy usune onClick="return validateForm(f);" wszystko działa dobrze.
Co o tym sądzicie??

Ten post edytował Piniek 7.06.2008, 08:31:54
Powód edycji: Poprawiłem bbcode // ~Piniek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Shili
post
Post #2





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Powiedz mi co Ty tą funkcją onload chcesz zrobić? Ustawić kursor na polu name? Bo na razie wywołujesz funkcję fokus, której wcale nie ma. To na pierwszym marginesie.

Na drugim: Element nie może mieć dwóch tych samych atrybutów - innymi słowy submit ma dwa razy onclick - usuń to, rozdzielając wywołania funkcji średnikiem.

Na trzecim:
onClick="return validateForm(f);" zamień na return validateForm(this);
Go to the top of the page
+Quote Post

Posty w temacie


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: 13.10.2025 - 18:46