Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Sprawdzanie, czy dwa pola mają taką samą wartość
malolat_ps
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

Ostrzeżenie: (0%)
-----


Witam!

Mam w swoim skrypcie sprawdzanie formularza w js. Chciałbym też sprawdzić, czy pole hasło i powtórz hasło mają taką samą wartość. Ale nie wiem w jaki sposób to zrobić, bo js jest dla mnie czarną magią smile.gif Gdyby ktoś mi podrzucił rozwiązanie byłbym bardzo wdzięczny smile.gif

Chciałbym również przy sprawdzaniu formularza zaznaczać czerwoną obwódką błędnie wypełnione pola. Ponoć w JS jest to wykonalne, jednak nie mogę nic znaleźć na ten temat winksmiley.jpg Jeżeli macie jakieś linki, bądź gotowe rozwiązanie również bardzo by mi się przydało smile.gif

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Chciałbym również przy sprawdzaniu formularza zaznaczać czerwoną obwódką błędnie wypełnione pola. Ponoć w JS jest to wykonalne, jednak nie mogę nic znaleźć na ten temat Jeżeli macie jakieś linki,

Jeśli warunek się nie zgadza, dodajesz po prostu jakąś klasę CSS do pola.

Cytat
Chciałbym też sprawdzić, czy pole hasło i powtórz hasło mają taką samą wartość.

Porównujesz value pola z value potwierdzenia.

Cytat
bądź gotowe rozwiązanie również bardzo by mi się przydało

Wklep sobie javascript form validator.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
malolat_ps
post
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

Ostrzeżenie: (0%)
-----


Znalazłem ten javascript form validator, ale nie widzę w nim funkcji zaznaczania błędnie wypełnionych pól. Jeżeli to tam jest to mógłbyś mnie trochę lepiej pokierować? smile.gif  Co do sprawdzania tych haseł to zrobiłem taką funkcję:

Kod
function sprawdzHaslo()
{
  var haslo = document.forms['form'].haslo;
  var powtorz_haslo = document.forms['form'].powtorz_haslo;
  
  if(haslo.value != powtorz_haslo.value)
  {
    alert('Podane hasła różnią się od siebie!');
    return false;
  }
  else
  {
    return true;
  }
}
zdaję sobie sprawę, że może mieć ona masę błędów, jednak w js jestem totalnym laikiem smile.gif  Ta funkcja, jak się łatwo domyśleć nie działa. 
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ok, a wywołujesz to jakoś?

Cytat
Jeżeli to tam jest to mógłbyś mnie trochę lepiej pokierować?

To znaczy? Napisałem o dodawaniu klasy, nie? winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
malolat_ps
post
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

Ostrzeżenie: (0%)
-----


Cytat(erix @ 17.04.2009, 18:03:03 ) *
Ok, a wywołujesz to jakoś?

Mam to wywołane w taki sposób:
Kod
<form action="" method="post" onsubmit="return testFormularza.testuj(this); return sprawdzHaslo()">



Cytat(erix @ 17.04.2009, 18:03:03 ) *
To znaczy? Napisałem o dodawaniu klasy, nie? winksmiley.jpg


No i właśnie tego nie rozumiem, tj. nie mam nawet zalążka pomysłu jak to zrobić smile.gif

Ten post edytował malolat_ps 17.04.2009, 18:09:12
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Mam to wywołane w taki sposób:

Nie możesz używać 2x return. Musisz połączyć obie funkcje w jedną.

Cytat
No i właśnie tego nie rozumiem, tj. nie mam nawet zalążka pomysłu jak to zrobić

Google: className.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
gcdreak
post
Post #7





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


Zamiast szukać gotowych rozwiązań i rozpracowywać jak działają zainteresuj się jQuery. Jeśli chcesz jakąś pomoc dotyczącą konkretnego przykładu to pisz.
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A do muchy będziesz strzelał z armaty?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
malolat_ps
post
Post #9





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

Ostrzeżenie: (0%)
-----


Jestem coraz bliżej rozwiązania, ale nadal coś jest nie tak. Mój kod JS na chwilę obecną wygląda tak:

Kod
testFormularza={
  rodzajePol:{
    niepuste:[/.+/,'Proszę wypełnić pole'],
    email:[/^[\w\.-]{2,}@[\w\.-]+\.[a-z]{2,5}$/,'Proszę podać prawidłowy adres e-mail'],
    liczbacalkowita:[/^\d+$/,'Prawidłową wartością tego pola jest liczba całkowita'],
    liczbarzeczywista:[/^(\d+|\d+,\d+)$/,'Proszę podać liczbę rzeczywistą (można użyć przecinka)'],
    data:[/^\d+\-\d+\-\d{4}$/,'Proszę wpisać datę w formacie DD-MM-RRRR (numer dnia-numer miesiąca-rok) np. 23-02-2003'],
    kodpocztowy:[/^\d{2}\-\d{3}$/,'Proszę podać kod pocztowy np. 06-600'],
    m20m100:[/^.{20,100}$/,'Proszę wpisać nie więcej niż 100 znaków, ale też nie mniej niż 20.'],
    duzelitery:[/^[A-Z]+$/,'Proszę używać wyłšcznie dużych liter w tym polu'],
    url:[/^http\:\/\/.+\.[a-z]{2,5}$/i,'Proszę podać prawidłowy adres strony www np. http://strona.pl'] 
  },
  testuj:function(f){
    var i,rodz;
    for(i=0;i<f.elements.length;i++){
      E=f.elements[i];
      if(rodz=this.rodzajePol[E.getAttribute('rodzajpola')])
        if(!rodz[0].test(E.value)){
          E.focus();
          E.select();
          var el = E.getAttribute('id');
          el.className = formularz_czerwona;
          alert((E.getAttribute('komunikat')||rodz[1]));
          return false;          
        }
    }
    return true;
  }
}



Za zaznaczanie błędnego pola czerwoną obwódką odpowiadają te dwie linie:

Kod
var el = E.getAttribute('id');
el.className = formularz_czerwona;
Niestety, gdy ta druga linijka znajduje się w kodzie, dalsza część tego kodu nie jest już wykonywana, tzn. nie wyświetla się alert i funkcja nie zwraca false, tylko przechodzi do następnej strony. Próbowałem już na wszelkie sposoby, jednak nadal nie mam rozwiązania. Czy jestem chociaż na właściwym tropie?
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A wiesz, czym się różni łańcuch tekstowy od zmiennej? Tym, że ma uszy (cudzysłowy).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
malolat_ps
post
Post #11





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

Ostrzeżenie: (0%)
-----


ok, zrobiłem tą zmianę koloru obramowania, rzeczywiście umknęły mi te cudzysłowy, ogromne dzięki za nakierowanie. Jednak dalej nie jestem w stanie dorobić do tej funkcji sprawdzania haseł.
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Przecież miałeś:
Kod
if(haslo.value != powtorz_haslo.value)

winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
malolat_ps
post
Post #13





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

Ostrzeżenie: (0%)
-----


Ok, zrobiłem wszystko smile.gif  Ogromne dzięki za podpowiedzi i sorki, że tyle zawracałem głowę. Czasami człowiek sam nie wpadnie na najprostrze rozwiązania, a jak ktoś inny nakieruje od razu lepiej idzie praca smile.gif Jeszcze raz dzięki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:52