Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Prosze o pomoc przy dokonczeniu walidacji
Forum PHP.pl > Forum > Przedszkole
pawelgdz
  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
mike
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.
^bmb
@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.
pawelgdz
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
nospor
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.
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.