[jQuery] Walidacja wpisywanych informacji w panelu logowania/rejestracji
W tym artykule poruszam kwestię walidacji wpisywanego tekstu w pola, które ustanowiliśmy w procesie rejestracji, logowania czy po prostu w formularzu kontaktowym. Jest to niewątpliwie jeden ze sposobów na uniknięcie błędnie wpisywanych informacji na stronie przez użytkownika.
Jak to zrobić z wykorzystaniem biblioteki jQuery i pluginu do niej?
Nie wiem czy pamiętasz, ale jakiś czas temu napisałem artykuły o tym jak stworzyć ładnie wyglądający formularz oraz o wyrażeniach regularnych (dotyczy nie tylko PHP). Zamierzam je wykorzystać w tej poradzie wprowadzając kilka zmian w formularzu i wykorzystując te wyrażenia.
Ponadto, należy pobrać plugin jquery.validate i dołączyć go do kodu formularza, tak samo jak blibliotekę jQuery.
Kod HTML będzie wyglądał teraz następująco:
<form method="post" action="dziekuje.html" name="rejestracja" id="rejestracja"> <div class="box"> <h1>Formularz rejestracji :</h1> <label> <span>Nazwa użytkownika :</span> <input type="text" class="wpis" name="username" id="username"/> </label> <label> <span>E-mail :</span> <input type="text" class="wpis" name="email" id="email"/> </label> <label> <span>Hasło :</span> <input type="text" class="wpis" name="password" id="password"/> </label> <label> <input type="submit" class="button" id="submit" name="submit" value="Wyślj" /> </label> </div> </form> |
W tym kodzie dodałem akcję przeniesienia na nową stronę po spełnieniu wymogów walidacji oraz pozmieniałem częściowo nazewnictwo na potrzeby pluginu.
W kodzie CSS natomiast, dodałem taki oto zapis:
label.error { font-size: 11px; background-color: #cc0; color: #fff; padding: 5px; text-align: center; } |
Kod JS odpowiadający za walidację naszego formularza wygląda następująco:
$(document).ready(function() { $.validator.addMethod("email", function(value, element) { return this.optional(element) || /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/i.test(value); }, "Wpisz poprawny adres e-mail."); $.validator.addMethod("username",function(value,element) { return this.optional(element) || /^[a-zA-Z0-9._-]{5,25}$/i.test(value); },"Nazwa użytkownika musi mieć od 5 do 25 znaków"); $.validator.addMethod("password",function(value,element){ return this.optional(element) || /^[A-Za-z0-9!@#$%^&*()_]{5,25}$/i.test(value); },"Hasło musi mieć od 5 do 25 znaków"); $("#rejestracja").validate({ rules: { email: "required email", username: "required username", password: "required password", }, }); }); |
Demo z tego przykładu jest dostępne tutaj: walidacja formularza z wykorzystaniem jQuery.
Dodatkowo, przygotowałem paczkę z plikami z tego artykułu: walidacja formularza z wykorzystaniem jQuery - pliki. Ot taki mały bonusik na Nowy Rok 2010.
Uważacie że to dobry pomysł zamieszczać w ten sposób pliki z porad?