Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Warunki if.. else if
lutador
post
Post #1





Grupa: Zarejestrowani
Postów: 183
Pomógł: 3
Dołączył: 5.03.2007
Skąd: Opole

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


Witam,

W zaleznosci od wybranych radioButtonow powinien wyswietlac sie odpowiedni napis. Mozemy wybrac tylko material bez definiowania zamknecia dlatego zrobilem 2 funkcje animMat i animTyl. Problemy sa dwa:
1. jezeli dolaczam funkcje animTyl to skrypt wogle nie dziala, bez niej dziala zmienianie materialu
2. document.getElementById('RadioRodzajMaterialu'); nie chce pobierac wartosci ze zmiennej

  1. wybor materialu:
  2. <input type="radio" name="RadioRodzajMaterialu" id="RadioRodzajMaterialu" value="Stalowa" onClick="animMat('stal'); checked>
  3. Stalowa
  4. <input type="radio" name="RadioRodzajMaterialu" id="RadioRodzajMaterialu" value="Aluminiowa" onClick="animMat('alu');>
  5. Aluminiowa
  6.  
  7.  
  8. wybor zamkniecia:
  9. <input type="radio" name="RadioRodzajScianyTylnej" id="RadioRodzajScianyTylnej" value="Klapa" onClick="animTyl('zsyp');" checked>
  10. Klapa z zsypem
  11. <input type="radio" name="RadioRodzajScianyTylnej" id="RadioRodzajScianyTylnej" value="Klapo-drzwi" onClick="animTyl('klapa');">
  12. Klapo-drzwi
  13.  
  14.  
  15. <!-- js -->
  16.  
  17. //var ObjRodzajMaterialu = document.getElementById('RadioRodzajMaterialu'); // nie chce pobierac zmiennych z formularza
  18. var ObjRodzajMaterialu = 'Stalowa'; //narazie podaje wartosc recznie
  19.  
  20.  
  21. function animMat(rodzaj){
  22. if (rodzaj == 'stal')
  23. document.getElementById( 'oDiv' ).innerHTML = "stal";
  24. else if (rodzaj == 'alu')
  25. document.getElementById( 'oDiv' ).innerHTML = "alu";
  26. }
  27.  
  28.  
  29. function animTyl(tyl){
  30.  
  31.  
  32. if (ObjRodzajMaterialu == 'Stalowa' && tyl =='zsyp'){
  33. document.getElementById( 'oDiv' ).innerHTML = "stal_zsyp";}
  34. else if ObjRodzajMaterialu == 'Stalowa' && tyl =='klapa'){
  35. document.getElementById( 'oDiv' ).innerHTML = "stal_klapa";}
  36. else if (ObjRodzajMaterialu == 'Aluminiowa' && tyl =='zsyp'){
  37. document.getElementById( 'oDiv' ).innerHTML = "alu_zsyp";}
  38. else if (ObjRodzajMaterialu == 'Aluminiowa' && tyl =='klapa'){
  39. document.getElementById( 'oDiv' ).innerHTML = "alu_klapa";}
  40. }
  41.  
  42.  
  43. <div id="oDiv">napis..</div>
Go to the top of the page
+Quote Post
paziek
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

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


zamiast
Kod
document.getElementById
użyj (na inputach)
Kod
document.getElementsByName

Do tego, getElementById oraz getElementsByName zwracają odpowiednio element oraz zbiór elementów. Aby pobrać wartość z elementów input, musisz użyć na elemencie (nie zbiorze) właściwości .value

W twoim przykładzie, powinieneś dodać do zdarzenia onclick() atrybut this
Kod
<input type="radio" name="RadioRodzajScianyTylnej" id="RadioRodzajScianyTylnej" value="Klapo-drzwi" onClick="animTyl(this.value,'klapa');">


function animTyl(ObjRodzajMaterialu,tyl){
   if(ObjRodzajMaterialu == 'Stalowa' && tyl =='zsyp') document.getElementById( 'oDiv' ).innerHTML = "stal_zsyp";
   else if(ObjRodzajMaterialu == 'Stalowa' && tyl =='klapa') document.getElementById( 'oDiv' ).innerHTML = "stal_klapa";
   else if(ObjRodzajMaterialu == 'Aluminiowa' && tyl =='zsyp') document.getElementById( 'oDiv' ).innerHTML = "alu_zsyp";
   else if(ObjRodzajMaterialu == 'Aluminiowa' && tyl =='klapa')  document.getElementById( 'oDiv' ).innerHTML = "alu_klapa";
}


a to
Kod
//var ObjRodzajMaterialu = document.getElementById('RadioRodzajMaterialu'); // nie chce pobierac zmiennych z formularza
var ObjRodzajMaterialu = 'Stalowa'; //narazie podaje wartosc recznie

w ogóle wywalić

Ten post edytował paziek 8.08.2008, 21:17:30
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 11:16