Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obiekty DOM w FireFoxie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
toolmaniak
Witam, mam takie pytanko... Poniżej zamieszczam listing takiego małego skrypciku który za zadanie ma po wywołaniu z opcją false lub true odpowiednio zaznaczyć lub odznaczyć wszystkie znalezione checkboxy.
Najgorsze jest to, że rozbudowałem ten skrypt jeszcze bardziej i w oparciu o niego wykonałem coś w stylu rozwijanej struktury drzewiatej i chcekboxy są zaznaczane w zalezności od tego co zostało pobrane z bazy sql. Potem to zamieniam na tablice asocjacyjną w php potem na tablice w javascript i tak sobie to hula. Hula ale tylko w IE, Operze i pewnie (mam nadzieję) jeszcze kilku innych przeglądarkach, natomiast za żadne skarby nie interpretuje tego poprawnie firefox. Czyżby getElementById lub getElementsByTagName to nie był jeszcze standard...? Co jest grane że cos takiego jak poniżej NIE działa wszędzie...questionmark.gifquestionmark.gif? withstupidsmiley.gif


  1. <script language='JavaScript' type='text/javascript'>
  2. <!--
  3. function setCheckboxes(state)
  4. {
  5. var checkboxes = document.getElementById(document.forms[0].name).getElementsByTagName('input');
  6. for ( var i = 0; i < checkboxes.length; i++ )
  7. {
  8. if ( checkboxes[i].type == 'checkbox' )
  9. {
  10. checkboxes[i].checked = state;
  11. }
  12. }
  13. return true;
  14. }
  15. //-->

i dowolne wywołanie funkcji
  1. setTimeout("java script:Check_Items('form', false);",10)
bigZbig
Nie potrafie Ci odpowiedziec co jest nie tak w Twoim skrypcie, ale wiem jedno, ze getElementById lub getElementsByTagName są obslugiwane w FF i to nie te metody sprawiają problem.

Pytanko. Wywolujesz funkcje Check_Items(), a zdefiniowaną masz setCheckboxes() - zamiesc calosc. Poza tym javascript pisze sie razem.
toolmaniak
To tylko literówki, wyciąłem z kilku miejsc kodu, a mam dwie symiliaryczne funkcje. Jakby co to zamiast setChcekboxes wyobrażmy sobie Check_items laugh.gif W każdym razie problem jest z tym głownym listingiem...
siemakuba
moze jednak pokaż właściwą funkcję?
juz nawet nie patrząc na nazwy funkcji zdefiniowancyh / wywyoływanych, to w zdefiniowanej przyjmujesz jeden argument, a w definiowanej podajesz dwa... jak to w końcu jest?

czy to document.forms[0].name nie powinno być przypadkiem document.forms[0].id?

i jeszcze jedno, nie działa ci w przeglądarce, która ma bardzo pomocne narzędzie -> Konsola JavaScript. Czy pojawiają się tam jakieś błędy? czy nie działa i nie mówi nic?

pokaż więcej kodu, gdyby forumowicze potrafili tak świetnie zgadywać jak zakładasz to stali by właśnie w kolejce po odbiór wygranej w Lotto.

pozdr.
toolmaniak
  1. <script language='JavaScript' type='text/javascript'>
  2. <!--
  3. function setCheckboxes(state)
  4. {
  5. var checkboxes = document.getElementById(document.forms[0].name).getElementsByTagName('input');
  6. for ( var i = 0; i < checkboxes.length; i++ )
  7. {
  8. if ( checkboxes[i].type == 'checkbox' )
  9. {
  10. checkboxes[i].checked = state;
  11. }
  12. }
  13. return true;
  14. }
  15. //-->

  1. setTimeout("java script:setCheckboxes(false);",10);


tak to powinno być po Bożemu, chyba... już bez parametru form bo zdefiniowałem go na stałe w funkcji jako obiekt document.forms[0].name. Przedtem było 'form' bo taka była nazwa formularza.
bigZbig
Metoda getElementById pobiera jak sama nazwa mowi element wedlug id. A Ty w wywolaniu tej funkcji podajesz jako argument "document.forms[0].name". To ze IE traktuje name podobnie jak id to nie dziwota bo w IE wszystko sie moze zdarzyc, natomiast nie dziw sie ze to nie dziala pod FF. Sprobuj formularzowi dodac atrybut id o takiej samej wartosci jak name i powinno smignac.
toolmaniak
Masz racje w oprogramowaniu z Redmond wszystko jest mozliwe. Dodałem parametr id do zancznika form i działa. Thx a lot.... Wielkie dzięki za pomoc....
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.