Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] funkcja sprawdz
Forum PHP.pl > Forum > Przedszkole
agataperz
Witam,

mam pytanie jak zrobic z zapytania poniżej azeby sprawdziło czy a i b są wypelnione lub czy c jest wypełnione

  1. <script type="text/javascript">
  2. function Sprawdz(spr){
  3. y=true;
  4. if(spr.a.value=='' || spr.b.value==''){ komunikat=false; alert('Nie wypełniłeś wymaganych pól'); }
  5. return komunikat;
  6. }
  7. </script>


Z góry dziekuje za pomoc
peter13135
a=='' && b='' || c=''
kamil4u
Warto jeszcze zadbać o nawiasy - dobry nawyk, żeby później nie zastanawiać się, który operator miał pierwszeństwo - nawet, gdy one nie są potrzebne. Czyli:
Kod
a && b || c  //nie
(a && b) || c // tak
peter13135
  1. a && b || c //tak
  2. (a && b) || c // tak


To kwestia gustu. Jeśli programista wie, że koniunkcja ma pierwszeństwo nad alternatywą to nie musi pisać, jeśli nie koniecznie wie, to dać nawiasy nie zaszkodzi.

analogicznie: czy uważasz, że zapis 2+2*2 jest gorszy od 2+(2*2) questionmark.gif
agataperz
programista wie ale soft nie wie i trzeba mu pokazać tongue.gif

Dzięki chłopaki.
Wersja poprawna o którą mi chodziło to:
  1. (a || b) && c

Nie wiedziałam że w js można korzystać z tych samych warunków co ma sql smile.gif


Nie wiem czemu ale niestety jak ktoś wpisze tylko jedna zmienna (np. imie) i wysle formularz wtedy wyskoczy blad. Jak poprawi to formularz sie nie chce wyslac - jaki może być problem?
Możecie pomóc?
  1. <script type="text/javascript">
  2. function sprawdz(spr){
  3. y=true;
  4. if((spr.zam_imie.value=='' || spr.zam_nazwisko.value=='') && spr.zam_firma.value==''){ komunikat=false; alert('Nie wypełniłeś wszystkich pól'); }
  5. return komunikat;
  6. }
  7. </script>

później
  1. <form id="formularz" action="finalizacja.php" method="post" onsubmit="return sprawdz(this)">


bez tych wierszy wszystko działa poprawnie a jak tylko wpisze to od razu jest problem przy poprawianiu danych. Jeżeli ktos wpisze wszystkie dane poprawnie to dziala. sad.gif
gargamel
[JAVASCRIPT] pobierz, plaintext
  1. y=true;
  2. [.....]
  3. komunikat=false;
  4. [.....]
  5. return komunikat;
[JAVASCRIPT] pobierz, plaintext


y to pewnie mialo byc komunikat ?

I swoją drogą - jeśli nie ma potrzeby stosowania zmiennych globalnych wewnątrz funkcji, lepiej stosować zmienne lokalne.
A najprościej to zrobić tak:
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. function sprawdz(spr){
  3. if((spr.zam_imie.value=='' || spr.zam_nazwisko.value=='') && spr.zam_firma.value==''){
  4. alert('Nie wypełniłeś wszystkich pól');
  5. return false;
  6. }
  7. else{
  8. return true;
  9. }
  10. }
  11. </script>
[JAVASCRIPT] pobierz, plaintext
agataperz
gargamel masz racje smile.gif

jeszcze jedno ostatnie pytanie: Co trzeba wpisać ażeby sprawdził czy przycisk radio jest wciśnięty?
kamil4u
"checked JS" w google
agataperz
Poszukałam i zaczełam kombinować i wykombinowałam:
  1. <script type="text/javascript">
  2. function sprawdz(spr){
  3. komunikat=true;
  4. if((spr.zam_imie.value=='' || spr.zam_nazwisko.value=='' || spr.platnosc.checked==true ) && spr.zam_firma.value==''){ komunikat=false; alert('Nie wypełniłeś wszystkich pól'); }
  5. return komunikat;
  6. }
  7. </script>

ale niestety nie działa. Co robie źle?
kamil4u
Pokaż jeszcze kod HTML.
Kod wygląda OK, pewnie zły warunek napisałaś - aby to spr. trzeba mieć kod HTML(fragment z formularzem) smile.gif
agataperz
  1. <form name="formularz" action="finalizacja.php" method="post" onsubmit="return sprawdz(this)">
  2. <table>
  3. <tr><td align=right>Imię: </td><td><input type=text name=wys_imie size=30></td></tr>
  4. <tr><td align=right>Nazwisko: </td><td><input type=text name=wys_nazwisko size=30></td></tr>
  5. <tr><td align=right>Nazwa firmy: </td><td><input type=text name=wys_firma size=30></td></tr>
  6. <tr><td align=right>Adres: </td><td><input type=text name=wys_adres size=30></td></tr>
  7. <tr><td align=right>Kod pocztowy: </td><td><input type=text id=wys_kod_poczt name=wys_kod_poczt size=30></td></tr>
  8. <tr><td align=right>Miejscowo?ć: </td><td><input type=text name=wys_miejscowosc size=30></td></tr>
  9. <tr><td align=right>Telefon: </td><td><input type=text id=wys_tel name=wys_tel size=30></td></tr>
  10. </table>
  11. <table>
  12. <tr><td align=right>Imię: </td><td><input type=text id=eyescript name=zam_imie size=30></td></tr>
  13. <tr><td align=right>Nazwisko: </td><td><input type=text name=zam_nazwisko size=30></td></tr>
  14. <tr><td align=right>Nazwa firmy: </td><td><input type=text name=zam_firma size=30></td></tr>
  15. <tr><td align=right>Adres: </td><td><input type=text name=zam_adres size=30></td></tr>
  16. <tr><td align=right>Kod pocztowy: </td><td><input type=text id=zam_kod_poczt name=zam_kod_poczt size=30></td></tr>
  17. <tr><td align=right>Miejscowo?ć: </td><td><input type=text name=zam_miejscowosc size=30></td></tr>
  18. <tr><td align=right>Telefon: </td><td><input type=text id=zam_tel name=zam_tel size=30></td></tr>
  19. <tr><td align=right>e-mail: </td><td><input type=text name=zam_mail size=30></td></tr>
  20. <tr><td align=right>Powiadomienie o statusie zamowienia: </td><td><input type="radio" name=powiadomienie value=sms>SMS <input type="radio" name=powiadomienie value=mail>e-mail</td></tr>
  21. </table>
  22. <input type="radio" name=platnosc value=pobranie > Płatno?ć przy odbiorze (+6,00 zł)<br>
  23. <input type="radio" name=platnosc value=online > Platno?ci on-line (+<? echo $t_pro; ?> zł)<br>
  24. <input type="radio" name=platnosc value=przelew > Przelew<br>
  25. </td></tr></table>
  26. <input type=submit value=dalej>
kamil4u
Musisz stworzyć odpowiedni warunek. Podpowiem, że:
spr.platnosc[0].checked - spr pierwsze radio
spr.platnosc[2].checked - spr trzecie radio
agataperz
a to nie można sprawdzić jedną komendą wszystkie radio name=platnosc?
CuteOne
[JAVASCRIPT] pobierz, plaintext
  1. var obj = document.formularz.platnosc;
  2. var len = obj.length;
  3.  
  4. for(var i=0; i<len; i++) {
  5.  
  6. if(obj[i].checked) {
  7.  
  8. alert(i);
  9. }
  10. }
[JAVASCRIPT] pobierz, plaintext
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.