Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Sprawdzanie formularza
Forum PHP.pl > Forum > Przedszkole
malolat_ps
Witam!

Tworzę sobie formularz rejestracji i chciałbym zrobić sprawdzanie w JS. Wymyśliłem, że jeżeli jakieś pole będzie wypełnione źle, bądź wogóle nie wypełnione, to nad formularzem pojawi się odpowiedni komunikat. Znalazłem taki skrypt, przerobiłem i niestety nie działa, pomimo, że wszystko jest praktycznie identyczne. Już straciłem pomysł, gdzie może być błąd, może Wy coś zauważycie smile.gif  A więc:

formularz

  1. <form method="post" action="" onsubmit="javascript:register();">
  2. <div id="registerResult"></div>
  3. <div class="rejestracja_naglowek">KONTO</div>
  4. <div class="rejestracja_blok">E-mail: <input type="text" id="email" name="email" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  5. <div class="rejestracja_blok">Hasło: <input type="password" id="haslo" name="haslo" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  6. <div class="rejestracja_blok">Powtórz hasło: <input type="password" id="powtorzhaslo" name="powtorz_haslo" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  7. <div class="rejestracja_naglowek">DANE PERSONALNE</div>
  8. <div class="rejestracja_blok">Imię: <input type="text" id="imie" name="imie" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  9. <div class="rejestracja_blok">Nazwisko: <input type="text" id="nazwisko" name="nazwisko" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  10. <div class="rejestracja_blok">Numer telefonu: <input type="text" id="telefon" name="numer_telefonu" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  11. <div class="rejestracja_blok">Ulica: <input type="text" id="ulica" name="ulica" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  12. <div class="rejestracja_blok">Numer domu: <input type="text" id="dom" name="numer_domu" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  13. <div class="rejestracja_blok">Kod pocztowy: <input type="text" id="kod" name="kod_pocztowy" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  14. <div class="rejestracja_blok">Miasto: <input type="text" id="miasto" name="miasto" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  15. <?php $zapytanie_k = mysql_query("SELECT * FROM `kraje`");
  16. ?>
  17. <div class="rejestracja_blok">Kraj: <select name="kraj" id="kraj" style="width: 254px; border: solid 1px #000000; color: #6c6c6c;">
  18. <option value="0">-- wybierz --</option>
  19. <?php while($fetchk = mysql_fetch_array($zapytanie_k))
  20. {
  21. $checked = ($fetchk['id'] == '120') ? 'selected' : '';
  22. ?>
  23. <option value="<?php echo $fetchk['id']; ?>" <?php echo $checked; ?>><?php echo $fetchk['kraj']; ?></option>
  24. <?php }
  25. ?>
  26. </select></div>
  27. <div class="rejestracja_naglowek">DANE DODATKOWE</div>
  28. <div class="rejestracja_blok">Nazwa firmy: <input type="text" name="nazwa_firmy" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  29. <div class="rejestracja_blok">NIP: <input type="text" id="nip" name="nip" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  30. <div class="rejestracja_blok" style="margin-right: 239px;">Subskrypcja: <input type="checkbox" name="subskrypcja" value="1" style="width: 15px; height: 15px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  31. <div class="rejestracja_blok" style="text-align: center; margin-top: 30px;"><input type="submit" value="Rejestracja" name="submit" style="width: 75px; height: 25px; background: #6c6c6c; border: solid 1px #000000; color: #E2E0E1;" /></div>
  32. </form>


Oczywiście w nagłówku dokumentu znajduje się wpis:

  1. <script language="javascript" type="text/javascript" src="js/register.js"></script>


A tutaj plik register.js:

  1. function register() {
  2.  
  3.   var registerResult = document.getElementById("registerResult");
  4.   var email = document.getElementById("email").value;
  5.   var haslo = document.getElementById("haslo").value;
  6.   var powtorzhaslo = document.getElementById("powtorzhaslo").value;
  7.   var imie = document.getElementById("imie").value;
  8.   var nazwisko = document.getElementById("nazwisko").value;
  9.   var telefon = document.getElementById("telefon").value;
  10.   var ulica = document.getElementById("ulica").value;
  11.   var dom = document.getElementById("dom").value;
  12.   var kod = document.getElementById("kod").value;
  13.   var miasto = document.getElementById("miasto").value;
  14.   var kraj = document.getElementById("kraj").value;
  15.   var nip = document.getElementById("nip").value;
  16.  
  17.   var poprawnyemail = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
  18.   var poprawnykod = /^\d{2}\-\d{3}$/;
  19.   var poprawnynip = /^\(d{3}-\d{3}-\d{2}-\d{2})|(d{3}-\d{2}-\d{2}-\d{3}$/;
  20.  
  21.   var sprawdzemail = poprawnyemail.test(email);
  22.   var sprawdzkod = poprawnykod.test(kod);
  23.   var sprawdznip = poprawnynip.test(nip);
  24.  
  25.   if(!sprawdzemail) {
  26.   registerResult.innerHTML = "Adres e-mail jest nieprawidłowy!";
  27.   return false;
  28.   }
  29.   elseif(haslo == '') {
  30.   registerResult.innerHTML = "Nie podano hasła!";
  31.   return false;
  32.   }
  33.   elseif(powtorzhaslo == '') {
  34.   registerResult.innerHTML = "Nie powtórzono hasła!";
  35.   return false;
  36.   }
  37.   elseif(haslo != powtorzhaslo) {
  38.   registerResult.innerHTML = "Podane hasła różnią się od siebie!";
  39.   return false;
  40.   }
  41.   elseif(imie == '') {
  42.   registerResult.innerHTML = "Nie wpisano imienia!";
  43.   return false;
  44.   }
  45.   elseif(nazwisko == '') {
  46.   registerResult.innerHTML = "Nie wpisano nazwiska!";
  47.   return false;
  48.   }
  49.   elseif(telefon == '') {
  50.   registerResult.innerHTML = "Nie podano numeru telefonu!";
  51.   return false;
  52.   }
  53.   elseif(ulica == '') {
  54.   registerResult.innerHTML = "Nie podano nazwy ulicy!";
  55.   return false;
  56.   }
  57.   elseif(dom == '') {
  58.   registerResult.innerHTML = "Nie wpisano numeru domu!";
  59.   return false;
  60.   }
  61.   elseif(!sprawdzkod) {
  62.   registerResult.innerHTML = "Podany kod pocztowy jest nieprawidłowy!";
  63.   return false;
  64.   }
  65.   elseif(miasto == '') {
  66.   registerResult.innerHTML = "Nie podano nazwy miasta!";
  67.   return false;
  68.   }
  69.   elseif(kraj == '0') {
  70.   registerResult.innerHTML = "Nie wybrano kraju z listy!";
  71.   return false;
  72.   }
  73.   elseif(nip != '' && !sprawdznip) {
  74.   registerResult.innerHTML = "Podany NIP jest nieprawidłowy!";
  75.   return false;
  76.   }
  77.   else {
  78.   return true;
  79.   }
  80. }


Gdzie jest błąd ? smile.gif)
athei
Zrezygnuj ze sprawdzania poprawności danych za pomocą JS i rób to w php. Pomyśl co będzie gdy ktoś wyłączy js albo wyedytuje formularz...
malolat_ps
Czekałem aż ktoś to napisze. Czy ja gdziekolwiek stwierdziłem, że za pomocą php nie będę sprawdzał ? ;>  Formularz będzie sprawdzany dwukrotnie, za pomocą JS, a później jeszcze za pomocą PHP, na wypadek, gdyby ktoś miał właśnie wyłączony JS. Jednak chcę sprawdzać także przez JS, bo jest to wygodniejsze, gdy nie trzeba się męczyć z ciągłym przeładowywaniem strony.
Filip_Łdz
Wyłączone php ? Jeśli mówisz o userze to możesz sobie w przeglądarce js wyłączyć a nie php.
malolat_ps
Cytat(Filip_Łdz @ 12.06.2009, 19:01:21 ) *
Wyłączone php ? Jeśli mówisz o userze to możesz sobie w przeglądarce js wyłączyć a nie php.


A Ty mnie nie łap za słówka, bo można się było domyślić, że pomyliłem się z rozpędu i oczywiście o wyłączony JS mi chodzi. 
Filip_Łdz
Nie mam zamiaru łapać Cię za słówka. Zrób to tylko za pomocą php. Nie rozumiem po co robić sprawdzanie 2x.
malolat_ps
Bo to fajny bajer jest i mam taką wizję przy tworzeniu strony smile.gif Uwierz, że dobrze się zastanowiłem czy chcę to wykorzystać i jestem pewny, że chcę. Więc jeżeli ktoś zna rozwiązanie problemu to będę bardzo wdzięczny winksmiley.jpg
Filip_Łdz
Czasami chora upartość nie popłaca.

Może tutaj coś znajdziesz: http://marcinkaszynski.com/blog/index.php/...nie-formularzy/
malolat_ps
Ale to moja sprawa jak to zrobię i czy popłaca czy nie popłaca. Zwróciłem się na forum o pomoc i mam nadzieję, że ją otrzymam. Jeżeli nie jesteś w stanie mi pomóc to bądź tak miły i nie rozmywaj tego tematu. Amen
Filip_Łdz
Patrz link up.

ps. Odnoszę wrażenie, że jesteś jakoś strasznie podenerwowany. Spokojnie ^^
malolat_ps
Mogłeś odnieść takie wrażenie, bo rzeczywiście na chwilę obecną nie jestem najspokojniejszym człowiekiem świata, ale wynika to z faktu, że się rozchorowałem sad.gif  więc bez urazy winksmiley.jpg

Co do linka, to niestety nic mi to nie pomogło. Przy tym moim sprawdzaniu strona po kliknięciu się przeładowuje, więc wygląda to tak, jakby ta funkcja js nie była wogóle wywoływana. Nie mam zbyt dużego doświadczenia w JS, więc błąd może być bardzo prosty, jednak ja go nie zauważam smile.gif
Kshyhoo
@malolat_ps, załącz skrypt przed Twoimi zmianami. Po za tym, nie karmić troli i nie spamować!
malolat_ps
Skrypt przed zmianami znajduje się tutaj
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.