Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js] Sprawdzanie, ktory radio jest zaznaczony
lukash82
post 6.10.2007, 16:32:17
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam. Mam taki problem z formularzem. Mam do napisania prosty test z trzema odpowiedziami i jedna ma byc poprawna. Html wyglada tak:
  1. <form name="formularz" method="post">
  2. <span class="pogrubiebie">Zadanie 1.</span> Pytanie 1
  3. <ul>
  4. <li><input type="radio" name="pyt1" value="1" />Odp1</li>
  5. <li><input type="radio" name="pyt1" value="2" />Odp2</li>
  6. <li><input type="radio" name="pyt1" value="3" />Odp3</li>
  7. </ul>
  8. </form>

a w js mam otrzymac, ktore pole jest zaznaczone i gdy na przyklad 1 bedzie zaznaczone to odpowiedz jest poprawna a gdy inne jest zaznaczone to odpowiedz jest zla. I wlasnie tu zaczynaja sie schody bo nie bardzo umie js i nie umie uzyskac, wartosci, ktora zostala zaznaczona. Gdzies wyczytalem ze robi sie to tak:
  1. var odpowiedz = (document.forms['formularz'].pyt1.value);

ale to niebardzo mi dziala, tzn wywala mi undefined...:/ Jesli wiecie jak cos takiego zrobic to prosze o jakas podpowiedz... Moze cos dodatkowo trzeba wykorzystac...? Pozdrawiam, Łukasz.
Go to the top of the page
+Quote Post
Daimos
post 6.10.2007, 18:24:35
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


  1. <li><input type="radio" name="pyt1" value="2" />Odp2</li>

zamien na:
  1. <li><input type="radio" name="pyt1" value="2" id="jakiesid"/>Odp2</li>

jak widzisz dodalem tylko ID i teraz mozesz tak:
  1. var wartosc = document.getElementById['jakiesid'].value;

pod ta zmienna masz teraz wartosc
oczywiscie mozna bez uzycia ID zrobic to w inny sposob, ale ja robie tak i dlatego tak pokazuje winksmiley.jpg
ps. czy sprawdzanie poprawnosci w JS ma sens jesli chodzi o test? chyba ze jest malo wazny, bo ktos zajrzy w kod i od razu bedzie wiedzial co zaznaczac. Tak samo kiedys mialem test na studiach przez neta z przysposobienia bibliotecznego smile.gif ktos zrobil value="1" przy poprawnych odpowiedziach ahhhhhh te nie dopatrzenia smile.gif

Ten post edytował my salsa 6.10.2007, 18:26:01


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
lukash82
post 6.10.2007, 19:12:54
Post #3





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam ponownie. Zrobilem tak jak radzisz ale niestety cos jednak nie chce mi to dzialac. Mam teraz cos takiego:
  1. <li><input type="radio" name="pyt1" value="0" id="zadanie1" />Odp1</li>
  2. <li><input type="radio" name="pyt1" value="1" id="zadanie1" />Odp2</li>
  3. <li><input type="radio" name="pyt1" value="0" id="zadanie1" />Odp3</li>

i w js cos takiego:
  1. var wartosc = document.getElementById['zadanie1'].value;
  2. alert(wartosc);

Teoretycznie wyglada to dobrze, a jednak nie dziala. A co do bezpieczenstwa testu to rozwiazywac go beda dzieci z klas 1-3 wiec o podgladniecie kodu sie nie martwie. Jesli znasz my salsa jednak jakis bezpieczniejszy sposob w js na taki test to podpowiedz co wykorzystac, moze sie przyda na przyszlosc. Ja cos takiego robie zawsze za pomoca PHP ale w tym przypadku nie moge z nigo skorzystac. Pozdrawiam, Łukasz.
Go to the top of the page
+Quote Post
Nattfarinn
post 6.10.2007, 21:52:45
Post #4





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

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


  1. function CheckRadio(RadioName)
  2. {
  3. var RadioButtons = document.getElementsByName(RadioName);
  4. for(i = 0; i < RadioButtons.length; i++)
  5. {
  6. if(RadioButtons[i].checked)
  7. {
  8. document.getElementById('Answer').value = RadioButtons[i].value;
  9. }
  10. }
  11. }
  12.  
  13. <li><input type="radio" name="MyRadioField" value="1">Odpowiedź 1</li>
  14. <li><input type="radio" name="MyRadioField" value="2">Odpowiedź 2</li>
  15. <li><input type="radio" name="MyRadioField" value="3">Odpowiedź 3</li>
  16.  
  17. <input type="button" onclick="CheckRadio('MyRadioField');" value="Sprawdź">
  18.  
  19. <input id="Answer" size="1">


Takie rozwiązanie Cię zadowala? Chyba właściwie nie masz wyjścia, bo z tego co wiem, jedynym sposobem na sprawdzenie który element jest zaznaczony to sprawdzenie po kolei każdej możliwości.

Pozdrawiam!

Ten post edytował Nattfarinn 6.10.2007, 21:54:47


--------------------
Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
-- R. Pattis
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: 27.04.2025 - 08:38