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 (1 - 11)
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Co rozumiesz pod "przenosi mnie na stronę błędu"?
Go to the top of the page
+Quote Post
Darkhijacker
post
Post #3





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

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


Kod
form name="formularz" id="formularz" enctype="multipart/form-data"  action="http://domena.com/index.php" onsubmit="return  validateForm(this)">


Jeśli jest jakiś błąd przenosi mnie tutaj http://domena.com/index.php
Go to the top of the page
+Quote Post
wlamywacz
post
Post #4





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Zainstaluj konsole błędów w FF i zobacz jaki błąd Ci pokazuje, lub poszukaj standardowo wbudowanej w Opere
Go to the top of the page
+Quote Post
Darkhijacker
post
Post #5





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

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


Po wypełnieniu obowiązkowego pola gdy nacisne "Wstaw grę" konsola pokazuje takie błąd:
Kod
Ostrzeżenie: Formularz zawiera poprawną deklarację typu kodowania: enctype=multipart/form-data, jednakże nie zawiera method=POST, dlatego zostanie przesłany z użyciem metody method=GET, a zmienna enctype zostanie pominięta.
Plik źródłowy: http://freejavagames.co.cc/formularz.html
Wiersz: 0


Ale z tym już sobie poradziłem i dalej nie działa :/ Jeszcze zostały tylko dwa błędy:
Kod
Błąd: fokus is not defined
Plik źródłowy: http://freejavagames.co.cc/formularz.html
Wiersz: 1

Kod
Błąd: f is not defined
Plik źródłowy: http://freejavagames.co.cc/formularz.html
Wiersz: 1


Ten post edytował Darkhijacker 7.06.2008, 08:51:57
Go to the top of the page
+Quote Post
wlamywacz
post
Post #6





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


I gotowe (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Nie zapomnij o przycisku pomógł ;p

  1. var fokus;
  2. var f;
Go to the top of the page
+Quote Post
Darkhijacker
post
Post #7





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

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


Nie ma tak łatwo (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Jak dodałem to co mówiłeś w znaczniku "script" to teraz pokazuje się:
Kod
Błąd: f is undefined
Plik źródłowy: http://freejavagames.co.cc/formularz.html
Wiersz: 16
Go to the top of the page
+Quote Post
Shili
post
Post #8





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
wlamywacz
post
Post #9





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Masz funkcję:
  1. validateForm(f)


To f to masz tam podać zmienną podczas wywołania funkcji a nie jak Ty to robisz:
  1. onClick="return validateForm(f);"


Podaj tam form-e
Go to the top of the page
+Quote Post
Darkhijacker
post
Post #10





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

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


Kurde ciągle coś nie działa (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) Byłby ktoś tak dobry i wkleił mi tutaj prawidłową wersje??
Go to the top of the page
+Quote Post
wlamywacz
post
Post #11





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Ludzie trochę własnej inwencji !

To chyba tak ma być
  1. onClick="return validateForm(this.form);"
Go to the top of the page
+Quote Post
Darkhijacker
post
Post #12





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

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


Coś takiego mam:
Kod
<html>
<head>
</head>
<body background="http://freejavagames.co.cc/templates/AbayBlue/images/back.gif">

<script language="javascript" type="text/javascript">

function insert_form(tytul, rozdzielczosc, gatunek, producent, link, screen, opis)
{
    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]";
    opener.focus();
    window.close();
}

function validateForm(f){
var i,e=f.elements,puste=false
var pola=['tytul']
for(i=pola.length-1; i>=0; --i)
    if(e[pola[i]].value!='') e[pola[i]].style.border='1px solid #7B9EBD'
    else{
        puste=true
        e[pola[i]].style.border='1px solid #ff9900'
    }
if(puste) alert('Musisz wypełnić wszystkie pola')
return !puste}

</script>
<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;">
<table align="center" width="500" height="32">
<tr>
    <td background="http://freejavagames.co.cc/templates/AbayBlue/images/cellpic2.gif"><center><font color="white" size="4" face="'Trebuchet MS',Verdana, Arial, Helvetica, sans-serif"><b>Formularz wstawiania gry:</b></font></center></td>
</tr>
</table>
<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 : 140%; color : #040404;"></b></legend>

<form name="formularz" id="formularz" enctype="multipart/form-data" method="POST" action="http://freejavagames.co.cc/index.php" onsubmit="return validateForm(this)">

<p>Tytuł gry<span style="color:red;"> *</span> :  <span class="postrow"><input type="text" name="tytul" size="20" style="vertical-align:middle;"></span>
</p>
<p>Rozdzielczość : <span class="postrow"><select name="rozdzielczosc" size="1" style="vertical-align:middle;">
  <option>128x128</option>
  <option>130x130</option>
  <option>128x160</option>
  <option>132x176</option>
  <option>176x208</option>
  <option>176x220</option>
  <option>240x320</option>
  <option>352x416</option>
</select></span></p>
<p>Gatunek gry : <span class="postrow"><select name="gatunek" size="1" style="vertical-align:middle;">
  <option>Zręcznościowa</option>
  <option>Strategiczna</option>
  <option>RPG</option>
  <option>Logiczna</option>
  <option>Sportowa</option>
  <option>Bijatyka</option>
  <option>Erotyczna</option>
  <option>Platformowa</option>
  <option>Wyścigi</option>
  <option>Przygodowa</option>
</select></span></p>
<p>Producent : <span class="postrow"><input type="text" name="producent" size="20" style="vertical-align:middle;">
</p>
<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://fjgupload.co.cc/','mywindow','width=0,height=0')" name="uploader" style="vertical-align:middle;">Uploader</button>
</p>
<p>Link do screenu z gry : <span class="postrow"><input type="text" name="screen" size="20" style="vertical-align:middle;">
</p>
Skrótowy opis gry : <br><textarea name="opis" cols="56" rows="3"></textarea>
<br>
<input type="submit" class="buttonik" value="Wstaw grę" onClick="return validateForm(this.form); 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;" />
<button type="reset" class="buttonik" value="Wyczyść">Wyczyść</button>

</td></tr>
</form>
</body>
</html>


Nadal nie działa. Już żaden pomysł nie przychodzi mi do głowy żeby jak to naprawić.

Ten post edytował Darkhijacker 7.06.2008, 18:42:55
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: 21.09.2025 - 10:50