Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Zabezpieczenie przed wyslaniem pustego formularz
Forum PHP.pl > Forum > Przedszkole
Kemot1000
mam formularz w ktorym sa 2 przyciski i 2 pola tekstowe chcialbym zeby niemzliwym bylo wyslanie formularza ktory nie zawieralby tekstu we wszystkich. Tyle mam:

  1. <script language="javascript" type="text/javascript">
  2. <!--
  3. function verify(Form1)
  4. {
  5. for (i = 0; i < Form1.length; i++)
  6. {
  7. var field = Form1.elements[i];
  8. if (field.type == "text" || field.type == "textarea" && field.value == "")
  9. {
  10. return false;
  11. }
  12. }
  13. return true;
  14. }
  15. -->
  16. <form name="Form1" method=post>
  17. <input type="text" name=NewText size=4 maxlength=4>
  18. <input type="button" value="Button1" name=button1 onClick="return check1();" />
  19. <input type=\"text\" name=\"NewText1\">
  20. <input type="button" value="Button2" name=button2 onClick="return check2();">
  21. </form>
  22.  
  23. <script language=javascript TYPE="text/javascript">
  24. <!--
  25.  
  26. function check1()
  27. { if (verify(Form1))
  28. {
  29. document.Form1.action = "http://anypage.com";
  30. document.Form1.target = "_blank";
  31. document.Form1.submit();
  32. return true;}
  33. else
  34. {
  35. alert("Please fill out all obligatory fields");
  36. return false;
  37. }
  38. }
  39.  
  40. function check2()
  41. { if (verify(Form1))
  42. {
  43. document.Form1.action = "test.php";
  44. document.Form1.target = "_blank";
  45. document.Form1.submit();
  46. return true; }
  47. else
  48. {
  49. alert("Please fill out all obligatory fields");
  50. return false;
  51. }
  52. }
  53. --> </script>



i za kazdym razem jak wysylam dostaje alert ze pola sa nie wypelnione nie wazne czy sa czy nie? ktos wie moze gdzie jest blad o czym zapomnialem??
lopik
  1. <script language="javascript" type="text/javascript">
  2. <!--
  3. function verify(f, b)
  4. {
  5. if (b.value == "button1" && f.text1.value == "")
  6. {
  7. alert("Nie wypelnione pola!");
  8. }
  9. else if (b.value == "button2" && f.text2.value == "" )
  10. {
  11. alert("Nie wypelnione pola!");
  12. }
  13. }
  14. -->
  15. </head>
  16.  
  17.  
  18.  
  19. <form method=post>
  20.  
  21. <input type="text" name="text1" size="4" maxlength="4" />
  22. <input type="button" value="button1" name=button1 onClick="verify(this.form, this)" />
  23. <input type="text" name="text2">
  24. <input type="button" value="button2" name=button2 onClick="verify(this.form, this)">
  25.  
  26. </form>


O coś takiego Ci chodzi ?
Kemot1000
Nie do konca bo tak tez probowalem ale pod onClick musi byc funkcja ktora wykona przekierowanie na nastepna strone a w tym wypadku po kliknieciu na przycisk nastepuje tylko sprawdzenie warunku? chyba ze zle to wprowadzilem
Cienki1980
To zrób tak, że jeżeli funkcja weryfikująca zwróci true zatwierdź formę.
Kemot1000
Javascript to nie bardzo moja dzialka? Mozesz to troche uscislic Cienki1980
lopik
  1. <script language="javascript" type="text/javascript">
  2. <!--
  3. function verify(f, b)
  4. {
  5. if (b.value == "button1" && f.text1.value == "")
  6. {
  7. alert("Nie wypelnione pola!");
  8. }
  9. else if (b.value == "button2" && f.text2.value == "" )
  10. {
  11. alert("Nie wypelnione pola!");
  12. }
  13. else
  14. {
  15. f.submit();
  16. return true;
  17. }
  18. }
  19. -->


Takie coś ?
Kemot1000
ten sam problem funkcja jest sprawdzana ale submit jest tylko dla 1 przycisku:

bez funkcji sprawdzanie to wygladalo tak:

  1. <form name="Form1" method=post>
  2. <input type="text" name=NewText size=4 maxlength=4>
  3. <input type="button" value="Button1" name=button1 onClick="return OnButton1();" />
  4. <input type=\"text\" name=\"NewText1\">
  5. <input type="button" value="Button2" name=button2 onClick="return OnButton2();">
  6. </form>
  7.  
  8.  
  9. <script language=javascript TYPE="text/javascript">
  10. <!--
  11. function OnButton1()
  12. {
  13. document.Form1.action = "http://anypage.com";
  14. document.Form1.target = "_blank";
  15. document.Form1.submit();
  16. return true;
  17. }
  18.  
  19. function OnButton2()
  20. {
  21. document.Form1.action = "test.php";
  22. document.Form1.target = "_blank";
  23. document.Form1.submit();
  24. return true;
  25. }
  26. </script>


no i w miejsce OnClick= "return OnButton1();" it "return OnButton2();" musza byc jakies funkcje ktore by sprawdzaly formularz i jezeli prawda to wykonywaly
{
document.Form1.action = "http://anypage.com";
document.Form1.target = "_blank";
document.Form1.submit();
return true;
}

nie jestem pewny czy dobrze mysle
Cienki1980
A dlaczego musisz mieć tam dwa przyciski questionmark.gif
Nie może być jeden przycisk SUBMIT po kliknięciu ktorego wykona się funkcja sprawdzająca poprawność wpisów i w przypadku gdy wszystko będzie OK zatwierdzi formę ?
Kemot1000
Poniewaz jeden przycisk odsyla na strone gdzie dodawane jest konto a drugi otwiera strone z ktorej wysyslane jest powiadomienie o danych jakie zostaly uzyte do stworzenia tego konta. I niestety ta stronka ktora konta dodaje jest lub bywa zawodna i czasem trzeba 2 razy probowac nim sie uda stworzyc nowe konto. Wiec musi byc rozdzielone tworzenie konta i wysylanie wiadomosci
lopik
Jakoś nie mogę sobie czegoś takiego wyobrazić. :?

A dwóch formularzy nie możesz ?
Kemot1000
Dwa formularze moga byc pod warunkiem ze plik test.php ktory jest pod drugim przyciskiem moze zebrac dane z 2 formularzy. Zrobilem to na jednym formularzu bo nie wiedzialem jak zebrac dane z 2 formularzy. Jest jakis sposob? bo z jednego to $_POST[''] zalatwia sprawe
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.