Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js] Prosze o pomoc przy dokonczeniu walidacji
pawelgdz
post 5.09.2006, 20:09:35
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 30.01.2006

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


  1. function sprawdz() {
  2.  
  3.  
  4. if (document.forms[0].elements['in001'].value == '') {
  5. document.forms[0].elements['in001'].style.background="red";
  6. return false;
  7. }
  8.  
  9. if (document.forms[0].elements['in002'].value == '') {
  10. document.forms[0].elements['in002'].style.background="red";
  11. return false;
  12. }
  13.  
  14. // .... i tak do in010
  15.  
  16. }
  17.  
  18.  


Drodzy koledzy mam około 10 pół do sprawdzenia w formularzu

do sprawdzenia uzywam powyzszej funkcji do ktorej odwołuje sie przy zatwierdezaniu formularza, w naglowku
  1. <form action=index.php method=post onclick="return sprawdz()">


Funkcja ta sprawdza mi pierwsze napotkane puste pole i koloruje je na czerwono ale powinna mi zaznaczyc wszystkie pola ktore sa puste sad.gif Gdy zaznacza pierwsze zwraac wartosc false i skrypt przestaje dzialac sad.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
mike
post 5.09.2006, 22:38:49
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


return powoduje zwrócenie wartości przez funkcję i zakończenie jej działania.

Pozbądź się return a będzie OK.

A jeszcze lepiej zrób tak:
Kod
<script type="text/javascript">
function sprawdz() {

    var result = true;

    if( document.forms[ 0 ].elements[ 'in001' ].value == '' ) {
        document.forms[ 0 ].elements[ 'in001' ].style.background = "red";
        result &= false;
    }

    if( document.forms[ 0 ].elements[ 'in002' ].value == '' ) {
       document.forms[ 0 ].elements[ 'in002' ].style.background = "red";
        result &= false;
    }

    // ...

    return result;

}

</script>


W tej postaci ten kod nadal jest nadający się do kosza, żeby go poprawić umieść sprawdzanie w pętli. Po co masz klepać w kółko to samo.
Go to the top of the page
+Quote Post
^bmb
post 5.09.2006, 23:06:57
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 12.12.2005

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


@pawelgdz
Cytat
do sprawdzenia uzywam powyzszej funkcji do ktorej odwołuje sie przy zatwierdezaniu formularza, w naglowku
HTML
<form action=index.php method=post onclick="return sprawdz()">


Zatwierdzenie formularza = onsubmit a nie jak u ciebie onclick.


--------------------
Cogito Ergo Sum
Go to the top of the page
+Quote Post
pawelgdz
post 7.09.2006, 20:47:14
Post #4





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 30.01.2006

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


Czy moglibyscie odwiedzic adres

www.inter-soft.pl/formularz

Kliknij "Wyslij" zakolorują się niewypelnione pola

Teraz wypelnij pierwsze, trzecie, ostatnie (mowimy o polach zakolorowanych na czerwono)

Co widzimy ? formularz sie zatwierdza ... dlaczego ?

Kod zrodlowy zobaczycie klikajac na mojej stronie Pokaz źródlo .



dlugo czekam na jaką kolwiek podpowiedz ale zadam pytanie bo domyslam sie że ..


Jezeli pierwsze pole nie jest wypelnione zwraca FALSE czyli logiczne 0

Drugie pole jest wypelnione zwraca TRUE czyli logiczne 1

jesli mamy :

0 and 1 and 0 and 1 and 0 and 1


to return zwraca ?

ja doliczylem sie ze zwroci true ?

sad.gif nie wiem jak mam sobie poradzic
Go to the top of the page
+Quote Post
nospor
post 7.09.2006, 20:54:26
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
jesli mamy :

0 and 1 and 0 and 1 and 0 and 1


to return zwraca ?

ja doliczylem sie ze zwroci true ?
Ojojojojj..... podstawy matematyki, logiki czy czegos tam sie klaniają. Jesli w wyrazeniu gdzie masz same "and" pojawi sie chocby jeden false, to wynik bedzie false, wiec ty sie tu lepiej nie doliczaj tylko troche podszkol winksmiley.jpg

Problem lezy w twoim skrypcie, bo ty w zaleznosci od niektorych warunkow przypisujesz dla result true. ZLE!!! true dla result przypisac masz raz na poczatku. potem jesli jakis warunek bedzie mowil ze pole jest zle, to dla result masz zwrocic false i tylko false.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 16.06.2025 - 00:07