devblog, portfolio

movie producer, zend framework, php, jquery pluginy



Sprawdzanie poprawności wpisanych haseł

media/upload/images/haslo-password.[kacperkolodziej.com].1251306383.jpgPodczas rejestracji w dowolnym serwisie wpisane hasło należy powtórzyć w celu wyeliminowania literówek. Najczęściej obok pola, w którym wpisuje się hasło ponownie, pojawia się znaczek, który informuje, czy wpisane hasła są identyczne. W tym poradniku napiszę jak samemu wykonać taki skrypt.

media/upload/images/haslo-password.[kacperkolodziej.com].1251306383.jpgPodczas rejestracji w dowolnym serwisie wpisane hasło należy powtórzyć w celu wyeliminowania literówek. Najczęściej obok pola, w którym wpisuje się hasło ponownie, pojawia się znaczek, który informuje, czy wpisane hasła są identyczne. W tym poradniku napiszę jak samemu wykonać taki skrypt.

Na początku dostosujemy do skryptu formularz. Pola, w które wpiszemy hasło muszą posiadać atrybuty id. Drugie pole będzie zawierało dodatkowo atrybut onchange. Powinno to wyglądać mniej więcej tak:

<input type="password" name="pass" id="pass" />
<input type="password" name="repPass" id="repPass" onchange="validate_pass('pass','repPass')" /><div id="ok" style="display:none;"><p>OK</p></div><div id="false" style="display:none;"><p>ŹLE</p></div>

W kodzie znalazły się dla bloki div. Funkcja będzie zmieniała znacznik display w zależności od jej wyniku. Dlatego, kiedy wpisane hasła będą identyczne, wyświetli się napis "OK", a kiedy będą różne, "ŹLE".

Teraz przyszedł czas na kod funkcji.

function validate_pass(p,r) {
if (document.getElementById(p).value!=document.getElementById(r).value) {
document.getElementById('false').style.display='block';
document.getElementById('ok').style.display='none';
} else {
document.getElementById('false').style.display='none';
document.getElementById('ok').style.display='block';
}
}

Na koniec kilka słów na temat kodu. Do funkcji są przekazywane dwie zmeinne: p i r. Pierwsza przechowuje id pola, w którym hasło jest wpisywane po raz pierwszy, a druga - po raz drugi.

W funkcji następuje porównanie zawartości obu pól. Jeśli wartości są różne, blok div o id równym false, zostaje wyświetlony, a ten o id równym ok - ukryty (przecież funkcja mogła być wcześniej użyta). Jeśli hasła są takie same, dzieje się na odwrót.

Tych, którzy nie wiedzą gdzie załączyć kod funkcji, kieruję do poradnika: Walidacja formularzy w JavaScript.

Lisek www Opera/9.60 (J2ME/MIDP; Opera Mini/4.1.13685/908; U; pl) Presto/2.2.0

Ja bym proponował nie bawić się w tyle divów tylko zmieniać wartość jednego przez innerHTML. No i fajnie by było gdyby tła i ramki pól formularza zmieniały kolor, taka estetyczna uwaga.

zibihehe www Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9

Witam, mam następujący problem, powyższy skrypt w każdym wypatku wyświetla mi napis "ŻLE" mimo tego że hasła są jednakowe, proszę o pomoc.

Kacper Kołodziej www Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3

Do kodu wkradł się błąd. Już poprawiony :)

zibihehe www Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9

Później do tego doszedłem, chodziło o : ".value" jak mniemam, ale dzięki za odpowiedź. ;)

Artur Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.13) Gecko/20100914 Firefox/3.5.13 ( .NET CLR 3.5.30729)

witam, fajna, przydatna sprawa, a skrypt
w którym wczytujemy plik php za kulisami i sprawdzamy czy np nazwa uzytkownika jaką podaje nam użytkownik nie jest już w bazie danych. Wzór takiego skryptu mnie interesuje, bo nie wiem jakich tam funkcji używać includuje, cuduje i kiepsko mi to idzie.

Kacper Kołodziej www Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.210 Safari/534.10

Spokojnie :) Po serii o Smarty przyjdzie czas na kolejne części 'Formularz z fajerwerkami', czy coś w tym stylu. Szkoda, że na razie czasu brak :(

Dodaj komentarz »