Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] Warunek nigdy się nie spełnia... / problem z .length
Forum PHP.pl > Forum > Przedszkole
Xemorin
  1. </div>
  2. </div>
  3. <div id="navigation">
  4. <p><strong>Rejestracja</strong></p>
  5. <ul>
  6. <script type="text/javascript">
  7. function sprawdz_formularz() {
  8. var blad = '';
  9. var login = document.forms['formularz'].login;
  10. var haslo = document.forms['formularz'].haslo;
  11. var haslo2 = document.forms['formularz'].haslo2;
  12. var email = document.forms['formularz'].email;
  13.  
  14. if ((login.value != '') && (haslo.value != '') && (haslo2.value != '') && (email.value != '')){
  15. if (haslo.value != haslo2.value)
  16. blad += 'hasła nie są takie same\n';
  17. if (login.length < 5)
  18. blad += 'login za krótki [5-15 znaków]\n';
  19. if (login.length > 15)
  20. blad += 'login za długi [5-15 znaków]\n';
  21. if (haslo.length < 5)
  22. blad += 'hasło za krótki [5-15 znaków]\n';
  23. if (haslo.length > 15)
  24. blad += 'hasło do długie [5-15 znaków]\n';
  25. if ((haslo.value == haslo2.value) && (login.length >= 5) && (login.length <= 15) && (haslo.length >= 5) && (haslo.length <= 15))
  26. //wszystko dobre
  27. else
  28. blad += 'qwertyuiop\n';
  29. } else
  30. blad += 'niektóre pola są puste\n';
  31.  
  32. if (blad == ''){
  33. alert('Poprawnie zarejestrowano gracza!');
  34. return true;
  35. } else
  36. alert(blad);
  37. return false;
  38.  
  39. }
  40. </script>
  41. <align='left'>
  42. <form id='formularz' action='' method='post' onsubmit="return sprawdz_formularz()">
  43. <div>
  44. > Podaj swoje nick: <input type='text' name='login'/><br>
  45. > Podaj swoje haslo: <input type='text' name='haslo'/><br>
  46. > Ponowanie podaj hasło: <input type='text' name='haslo2'/><br>
  47. > Podaj e-mail: <br><input type='text' name='email'/><br>
  48. <input type='submit' value='rejestruj'/>
  49. </div></form>
  50. </align>
  51. </ul>
  52. </div>

Problem polega na tym, że co bym nie wpisał (ale musi być przynajmniej jeden znak) to 'if ((haslo.value == haslo2.value) && (login.length >= 5) && (login.length <= 15) && (haslo.length >= 5) && (haslo.length <= 15))' zawsze zwraca false (więc przechodzi do else). Według mnie źle działa sprawdzenie długości stringa (length), bo inne wcześniejsze warunki (np. if (haslo.length > 15) też się nie wykonują. Proszę o pomoc.
#luq
Firebug (lub inne narzędzie tego typu) i zbadaj to co wypluwają właściwość length do poszczególnych obiektów.
Xemorin
#edit
Zmiana planów 2, skrypt naprawiony. Zaraz dam wyniki.

Pewnie źle użyłem, ale wyniki to zawsze '1' co bym nie wpisał.
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.