Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Walidacja email
Forum PHP.pl > Forum > Przedszkole
Lathiel
Witam, mój problem polega na tym, że mam pole do którego wpisuje email i musi ono spełniać dwa warunki 1) nie może być puste, 2) musi zawierać odpowiednie znaki.
Problemem jest to że po wpisaniu prawidłowego maila(tzn z odpowiednimi znakami) dalej wyrzuca mi informacje że mail jest nieprawidłowy.

Z góry dziękuje za pomoc.




Poniżej zamieszczam kod sprawdzający warunek czy jest puste:
[JAVASCRIPT] pobierz, plaintext
  1. function czyWypelnione(pole) {
  2. if (pole.value == "") {
  3. document.getElementById("error" + pole.id).innerHTML = "To pole jest wymagane!";
  4. return false;
  5. }
  6. else {
  7. document.getElementById("error" + pole.id).innerHTML = "";
  8. return true;
  9. }
  10.  
  11. }
[JAVASCRIPT] pobierz, plaintext


A poniżej kod narzucający odpowiednie znaki:
[JAVASCRIPT] pobierz, plaintext
  1. function isValidEmail(pole) {
  2. var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,6})$/;
  3. if (reg.test(pole.value) == false) {
  4. document.getElementById("error" + pole.id).innerHTML = "Nieprawidłowy adres email";
  5. return false;
  6. }
  7. else {
  8. document.getElementById("error" + pole.id).innerHTML = "";
  9. return true;
  10. }
  11.  
  12. }
[JAVASCRIPT] pobierz, plaintext


Sama funkcja wygląda zaś:

[JAVASCRIPT] pobierz, plaintext
  1. window.onload = function() {
  2.  
  3. document.getElementById("regform").onsubmit = function() {
  4. if (
  5.  
  6. czyWypelnione(this.login) &&
  7. isMinLength(this.login, 5) &&
  8. czyWypelnione(this.email) &&
  9. isValidEmail(this.email) &&
  10. czyWypelnione(this.haslo) &&
  11. isMinLength(this.haslo, 5) &&
  12. areFieldsEqual(this.haslo, this.phaslo)
  13.  
  14. ) {
  15. return true;
  16. }
  17. else {
  18. return false;
  19. }
  20. }
  21.  
  22. }
[JAVASCRIPT] pobierz, plaintext



ok, znalazłem problem

zamiast:
  1. if (reg.test(pole.value) == false)


powinno być:
  1. if (reg.test(pole.value) === false)


tylko nie mam pojęcia dlaczego
wNogachSpisz
Taka filtracja jest gorsza od żadnej.

Tutaj masz trochę na ten temat plus jako-takie wzorce:

http://www.regular-expressions.info/email.html


Pozostaje kwestia znaków diakrytycznych w nazwach domen.

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.