Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Zaleznosci w RadioButton
Forum PHP.pl > Forum > Przedszkole
lutador
Witam,

mam problem w wymysleniu algorytmu i zapisaniu tego w js nastepujacej sprawy:
1. Chcialbym aby w zaleznosci od wybranej ramy i wybranego materialu dostepne bylyby rozne pojemnosci np
rama 8360, material stalowa, pojemnosc 28,33 reszta radioButtonow bylaby nie aktywna

robilem to za pomoca funckji disableRadio('FormWywrotka','RadioPojemnosc',4); lub enableRadio(..); tylko wtedy mialem 2 warunki material i pojemnosc teraz doszedl mi warunek z dlugoscia ramy czyli mam 3 warunki od ktorej zalezy ktore beda RadioButtony aktywne a ktore nie
czy ktos ma moze pomysl jak to w prosty sposob rozwiazac?

  1. <!--1. wybieram dlugosc ramy -->
  2. <input type="radio" name="RadioRamaDlugosc" id="RadioRamaDlugosc" value="8360" checked>
  3. Krótka 8360
  4. <input type="radio" name="RadioRamaDlugosc" id="RadioRamaDlugosc" value="9200" >
  5. Długa 10200
  6. <input type="radio" name="RadioRamaDlugosc" id="RadioRamaDlugosc" value="10200" >
  7. Inna 10400
  8.  
  9. <!--2. Rodzaj materialu -->
  10. <input type="radio" name="RadioRodzajMaterialu" id="RadioRodzajMaterialu" value="Stalowa" checked>
  11. Stalowa
  12. <input type="radio" name="RadioRodzajMaterialu" id="RadioRodzajMaterialu" value="Aluminiowa" >
  13. Aluminiowa
  14. <input type="radio" name="RadioRodzajMaterialu" id="RadioRodzajMaterialu" value="S355" >
  15. Stalowa z blachy S355
  16. <!--3. Wielkosc skrzyni -->
  17. standardowa:
  18. <input type="radio" name="RadioPojemnosc" id="RadioPojemnosc" value="28">
  19. 28m<sup>3</sup>
  20. <input type="radio" name="RadioPojemnosc" id="RadioPojemnosc" value="33" checked>
  21. 33m<sup>3</sup>
  22. <input type="radio" name="RadioPojemnosc" id="RadioPojemnosc" value="35">
  23. 35m<sup>3</sup>
  24. <input type="radio" name="RadioPojemnosc" id="RadioPojemnosc" value="38">
  25. 38m<sup>3</sup>
  26. <input type="radio" name="RadioPojemnosc" id="RadioPojemnosc" value="40" disabled>
  27. 40m<sup>3</sup>
golaod
Tworzysz sobie np. w tablicy drzewko zależności i potem za każdym klikiem sprawdzasz co powinno być wyłączone a co nie. To jest dobry sposób bo wystarczy go wtedy tylko rozbudować a nie zmieniać cały skrypt.
lutador
a moglbys napisac mi przykladowy kod ktory ja sobie potem rozbuduje? nie jestem za dobry z js
golaod
  1. tablica = new Array();
  2. //klucz w tablicy odpowiada jakiemus okreslonemu lancuchowi
  3. //od 0 do 2 bedzie dlugosc
  4. tablica[0] = 'r_0,r_2';
  5. tablica[1] = 'r_0,r_1';
  6. tablica[2] = 'r_2';
  7. //co oznacza juz pierwsza zaleznosc czyli czyli jezeli ktos wybral
  8. //pierwsza dlugosc to moze potem kliknac tylko rodzaj 0 lub rodzaj 2 metalu
  9. //oczywiscie jak to wykonac. A no tak:
  10. function do_it(_number)
  11. {
  12. temp = tablica[_number].split(',');
  13. for(i=0;i<temp.length;i++)
  14. {
  15. document.getElementById(temp[i]).disabled=true;
  16. document.getElementById(temp[i]).checked=false;
  17. }
  18. }
  19. </head>
  20. <!--1. wybieram dlugosc ramy -->
  21. <input type="radio" name="RadioRamaDlugosc" id="RadioRamaDlugosc" value="8360" onClick="do_it(0)">
  22. Krótka 8360
  23. <input type="radio" name="RadioRamaDlugosc" id="RadioRamaDlugosc" value="9200" onClick="do_it(1)">
  24. Długa 10200
  25. <input type="radio" name="RadioRamaDlugosc" id="RadioRamaDlugosc" value="10200" onClick="do_it(2)">
  26. Inna 10400
  27.  
  28. <!--2. Rodzaj materialu -->
  29. <input type="radio" name="RadioRodzajMaterialu" id="r_0" value="Stalowa">
  30. Stalowa
  31. <input type="radio" name="RadioRodzajMaterialu" id="r_1" value="Aluminiowa" >
  32. Aluminiowa
  33. <input type="radio" name="RadioRodzajMaterialu" id="r_2" value="S355" >
  34. Stalowa z blachy S355
  35. </body>
  36. </html>

Teraz wystarczy tylko i wyłącznie dokładać zależności do tablicy, przy każdym inpucie dawać odpowiednie id i przede wszystkim odwołanie do dobrego indeksu w tablicy.
lutador
DZIEKI ale to nie do konca dziala tak jak bym chcial. Jezeli wybieram Rama krotka to pozniej chcialbym wybrac z 3 metali i dopiero pozniej miec wybor kilku pojemnosci. Z tego co przestestowalem to rozwiazanie jest dobry gdybym mial tylko 2 warunki jak ty to zrobiles a ja mam 3.
A jak zrobic jeszcze zeby to dzialalo w 2 strony tzn jak wybiore krotka i zablokuja mi sie 2 buttony, a potem wybiore dluga to zeby mi sie 2 pierwsze odblokowaly a nie wszystkie zablokowaly

  1. tablica[0] = 'r_2,p_0,p_1,p_2';
  2. tablica[1] = 'r_0,r_1';
  3. tablica[2] = 'r_2';
  4.  
  5.  
  6. <!--1. wybieram dlugosc ramy -->
  7. <input type="radio" name="RadioRamaDlugosc" id="RadioRamaDlugosc" value="8360" onClick="do_it(0)">
  8. Krótka 8360
  9. <input type="radio" name="RadioRamaDlugosc" id="RadioRamaDlugosc" value="9200" onClick="do_it(1)">
  10. Dluga 10200
  11. <input type="radio" name="RadioRamaDlugosc" id="RadioRamaDlugosc" value="10200" onClick="do_it(2)">
  12. Inna 10400
  13. <p>
  14. <!--2. Rodzaj materialu -->
  15. <input type="radio" name="RadioRodzajMaterialu" id="r_0" value="Stalowa">
  16. Stalowa
  17. <input type="radio" name="RadioRodzajMaterialu" id="r_1" value="Aluminiowa" >
  18. Aluminiowa
  19. <input type="radio" name="RadioRodzajMaterialu" id="r_2" value="S355" >
  20. Stalowa z blachy S355
  21. <p>
  22. standardowa:
  23. <input type="radio" name="RadioPojemnosc" id="p_0" value="28">
  24. 28m<sup>3</sup>
  25. <input type="radio" name="RadioPojemnosc" id="p_1" value="33" checked>
  26. 33m<sup>3</sup>
  27. <input type="radio" name="RadioPojemnosc" id="p_2" value="35">
  28. 35m<sup>3</sup>
  29. <input type="radio" name="RadioPojemnosc" id="p_3" value="38">
  30. 38m<sup>3</sup>
  31. <input type="radio" name="RadioPojemnosc" id="p_4" value="40" disabled>
  32. 40m<sup>3</sup>
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.