</div> </div> <div id="navigation"> <p><strong>Rejestracja</strong></p> <ul> <script type="text/javascript"> function sprawdz_formularz() { var blad = ''; var login = document.forms['formularz'].login; var haslo = document.forms['formularz'].haslo; var haslo2 = document.forms['formularz'].haslo2; var email = document.forms['formularz'].email; if ((login.value != '') && (haslo.value != '') && (haslo2.value != '') && (email.value != '')){ if (haslo.value != haslo2.value) blad += 'hasła nie są takie same\n'; if (login.length < 5) blad += 'login za krótki [5-15 znaków]\n'; if (login.length > 15) blad += 'login za długi [5-15 znaków]\n'; if (haslo.length < 5) blad += 'hasło za krótki [5-15 znaków]\n'; if (haslo.length > 15) blad += 'hasło do długie [5-15 znaków]\n'; if ((haslo.value == haslo2.value) && (login.length >= 5) && (login.length <= 15) && (haslo.length >= 5) && (haslo.length <= 15)) //wszystko dobre else blad += 'qwertyuiop\n'; } else blad += 'niektóre pola są puste\n'; if (blad == ''){ alert('Poprawnie zarejestrowano gracza!'); return true; } else alert(blad); return false; } </script> <align='left'> <form id='formularz' action='' method='post' onsubmit="return sprawdz_formularz()"> <div> > Podaj swoje nick: <input type='text' name='login'/><br> > Podaj swoje haslo: <input type='text' name='haslo'/><br> > Ponowanie podaj hasło: <input type='text' name='haslo2'/><br> <input type='submit' value='rejestruj'/> </div></form> </align> </ul> </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.