Różnica w interpetacji javascript w IE a FF/O - ukrywanie i odkrywanie elementów strony, problemy z używaniem niektórych klas, metod, czy zmiennych w IE. |
Różnica w interpetacji javascript w IE a FF/O - ukrywanie i odkrywanie elementów strony, problemy z używaniem niektórych klas, metod, czy zmiennych w IE. |
14.05.2009, 20:57:55
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 21.10.2008 Ostrzeżenie: (0%) |
Witam.
Pół dnia kombinowania by fragment strony wyświetlał się i reagował tak samo w IE(7) i FF3.x i w Operze !! Człowieka może trafić !! Problem dotyczył wyświetlania lub ukrywania jednego <select> w zależności od wybranej opcji w drugim <select> Okazało się że w IE użycie: Kod document.getElementById("status").value inaczej działa w IE a inaczej w FF/O Ale już działanie: Kod document.getElementsByName("status_przedmiotu").item(0).value działa tak samo w każdym przypadku. Podaję działający kod do wykorzystania dla innych. Działa poprawnie w IE i FF oraz O. Powoduje ukrywanie <select id="magazyny"> lub wyświetlanie w zalezności od ustawień opcji <select name="status_przedmiotu"> Kod HTML: Kod <html> <head> <script type="text/javascript" language="javascript" src="script.js"></script> </head> <body> <form method="POST" action="link_do_obslugi_np.php"> <select name="magazyn" id="magazyny"> <?php for($aa=0;$aa<$pozycja;$aa++)echo '<option>'.$magazynki[$aa].'</option>'; ?> </select> <br/> <select name="status_przedmiotu" id="status"> <option value="Nie dostarczony">Nie dostarczony</option> <option value="Dostarczony">Dostarczony</option> </select> <br/> <input type="SUBMIT" value="Wybierz"/> </form> </body> </html> kod javascript działający poprawnie w każdej przeglądarce: Kod window.onload=zdarzenia; function zdarzenia(){ document.getElementsByName("status_przedmiotu").item(0).onchange=zmiana_mag; zmiana_mag(); } function zmiana_mag(){ if(document.getElementsByName("status_przedmiotu").item(0).value=="Dostarczony"){ document.getElementById("magazyny").style.display=''; }else{ document.getElementById("magazyny").style.display='none'; } } kod javascript działający poprawnie w FF oraz Opera a nie działający w IE (czasem zadziałał tylko na początku ukrywając wybranego selecta. Potem już reakcja onchange jakby nie reagowała wykonaniem funkcji zmiana_mag; Kod window.onload=zdarzenia; function zdarzenia(){ document.getElementsById("status").onchange=zmiana_mag; zmiana_mag(); } function zmiana_mag(){ if(document.getElementsById("status").value=="Dostarczony"){ document.getElementById("magazyny").style.display=''; }else{ document.getElementById("magazyny").style.display='none'; } } Moje pytanie brzmi: Ktoś wie dlaczego jedna metoda działa w obu (byName) a druga (byId) tylko w FF/O Czy jedna jest standardem a druga nie ? czy to IE jest do Du.. (na to stawiam). Czy może FF/O na za dużo sobie pozwalają. A może problem polega na mojej miernej znajomości zasad? Mam nadzieję że ktoś skorzysta z powyższego. Pozdrawiam Ten post edytował Everizon 15.05.2009, 21:01:46 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 08:54 |