Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Sprawdzanie form
SaMi
post 27.11.2008, 23:45:13
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 14
Dołączył: 27.03.2004
Skąd: Białystok

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


Witam,
Chcę sprawdzić czy na wszystkie pytania w ankiecie zostałą udzielona odpowiedz i kombinowałem w ten sposób:

  1. function checkAll()
  2. {
  3. var error = false;
  4.  
  5. for(i=1;i<14;i++)
  6. {
  7. var ids="pytanie["+i+"]";
  8.  
  9. if(document.getElementsByName(ids).value =="" )
  10. {
  11. error = true;
  12. }
  13. }
  14.  
  15. if (error){
  16. alert('nie odpowiedziałeś na wszystkie pytania');
  17. return false;
  18. } else {
  19. return true;
  20. }
  21.  
  22. }


natomiast formularz wygląda tak

  1. <form name="pytaniee" method="post" onsubmit="return checkAll()">
  2. <select name="pytanie[1]" >
  3. <option value=""></option>
  4. <option value="1">cos 1</option>
  5. <option value="2">cos 2</option>
  6. </select>
  7. <select name="pytanie[2]" >
  8. <option value=""></option>
  9. <option value="1">cos 11</option>
  10. <option value="2">cos 22</option>
  11. </select>
  12. .
  13. .
  14. .


Niestety nie działa mi to.
document.getElementsByName(ids).value zwraca undefined tak jak by nie przyjmowało nazwy dziecka form ze zmiennej, co robię źle w powyższej funkcji ?


--------------------
Zapraszam na spływy kajakowe rzekami podlasia www.splywy-kajakiem.pl
Go to the top of the page
+Quote Post
bobo168
post 27.11.2008, 23:52:08
Post #2





Grupa: Zarejestrowani
Postów: 201
Pomógł: 9
Dołączył: 23.08.2006

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


google.pl mnóstwo tego typu skryptów znajdziesz.
Go to the top of the page
+Quote Post
SaMi
post 28.11.2008, 00:00:01
Post #3





Grupa: Zarejestrowani
Postów: 173
Pomógł: 14
Dołączył: 27.03.2004
Skąd: Białystok

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


To prawda ale ja chcę wiedzieć co w tym przypadku robię źle.


--------------------
Zapraszam na spływy kajakowe rzekami podlasia www.splywy-kajakiem.pl
Go to the top of the page
+Quote Post
erix
post 28.11.2008, 00:01:16
Post #4





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




getElementsByName(ids)
Nie ma takiej funkcji. 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
bobo168
post 28.11.2008, 00:11:52
Post #5





Grupa: Zarejestrowani
Postów: 201
Pomógł: 9
Dołączył: 23.08.2006

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


Cytat(erix @ 28.11.2008, 00:01:16 ) *
getElementsByName(ids)
Nie ma takiej funkcji. winksmiley.jpg

Jak to nie ma ? biggrin.gif
Go to the top of the page
+Quote Post
erix
post 28.11.2008, 00:15:08
Post #6





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




Jasny gwint, wtopa. :X


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

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
nitek
post 28.11.2008, 08:48:03
Post #7





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

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


spróbuj może zdefiniować nazwy pól nie wskazujące na tablice. coś w rodzaju, pytanie_1, pytanie_2... i zrobić coś takiego

Kod
var error = false;
var ids; //nie defuniuj nowej zmiennej za kazdym razem w petli - zdeifniuj ją raz, potem nadawaj wartość.

    for(i=1;i<14;i++)
    {
        ids="pytanie_"+i;

        // dla testu możesz zrobić w tym miejscu coś takiego (bedziesz wiedzial, co wskazuja zmienne): alert(ids); alert(document.getElementsByName(ids).value);

        if(document.getElementsByName(ids).value =="" )
        {
          error = true;
        }
    }


Ten post edytował nitek 28.11.2008, 08:50:37


--------------------
Go to the top of the page
+Quote Post
vokiel
post 28.11.2008, 13:35:40
Post #8





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Ale co to za herezje?
Cytat
document.getElementsByName(ids)

getElementsByName pobiera elementy po nazwie, a tu przekazujecie id, do pobierania po id jest metoda getElementById()
Jak już pobierać po name, to: document.getElementsByName('input'), wtedy dostajesz tablice inputów, sprawdzasz w pętli czy są to inputy typu text, i sprawdzasz ich value.


--------------------
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: 6.07.2025 - 12:38