Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Zaznaczanie kontrolek
Forum PHP.pl > Forum > Przedszkole
island
Czy jest możliwość zaznaczenia wszystkich checkboxów w obrębie jednego div'a.
Kombinuje z czymś takim , ale nie działa

Kod
document.getElementById(div_name).getElementsByTagName('checkbox').checked = true;
erix
Kod
getElementsByTagName('checkbox')

Chyba input, a nie checkbox. winksmiley.jpg
island
W taki sposób też nie działa, chyba, że coś źle robię.

Kod
    document.getElementById(div_name).getElementsByTagName('input').checked = true;


Opisze problem dokładniej: Mam formularz z osobami (osoby są zapisane w db). Przy każdym nazwisku są checkboxy do zaznaczania. Osoby są przydzielone do poszczególnych grup. Chciałbym poprzez naciśnięcie jednego przycisku (na formularzu będzie osobny przycisk dla każdej grupy) została zaznaczona cała grupa. Nie wiem jak mam to zrobić?

Próbowałem tworzyć osobne pudełka dla każdej grupy
Kod
<div id="id_grupy">  lista osób w obrębie jednej grupy </div>
ale nie wiem jak zaznaczyć wszystkie checkboxy w obrębie jednego pudełka.
erix
Kod
document.getElementById(div_name).getElementsByTagName('input').checked = true;

Bo to jest tablica obiektów, a nie jeden obiekt. winksmiley.jpg Przeiteruj zwróconą tablicę i będzie ok.
island
Mogę zaznaczyć wszystkie kontrolki w całym formularzu, ale nie mogę zaznaczyć ich w obrębie jednego diva!!
Proszę o wskazanie błędu - oto kod

Kod
var all;
    all = document.getElementById(div_name).getElementsByTagName('input').length +  document.getElementById(div_name).getElementsByTagName('checkbox').length;
    
    for (i=0; i<all; i++)
    {
      document.getElementById(id_group).elements[i].checked = true;
    }
ziqzaq
1) Nie kumam dlaczego nie słuchasz ~erixa.
Gdzie w kodzie masz tag "<checkbox />"?
Cytat
getElementsByTagName('checkbox')

2) Robiąc coś takiego:
Kod
all = document.getElementById(div_name).getElementsByTagName('input')

Dostajesz w wyniku obiekt NodeList (wystarczy alert(all) i zobaczysz). Jak się dorwać to listy elementów w tym obiekcie? Ano tak: obj.item(i).
Na koniec przykładowy kod:
Kod
function zaznacz() {
    // Tu pobieram elementy (input!) z diva o nazwie 'divek'
    var elementy = document.getElementById('divek').getElementsByTagName('input');
    for( i = 0; i < elementy.length; i++){
        el = elementy.item(i); // Pobieram element
        if( el.type == 'checkbox' ){ // Tu sprawdzam czy element (input) jest checkboxem
            el.checked = true;
        }
    }
    return false;
}


PS Kod sprawdzany tylko na Operze 9.62 i FF 3, nie wiem czy IE nie będzie miał jakichś "jazd" przy tym kodzie.
island
Oj wielkie dzięki ziqzaq smile.gif Również dziękuję erixowi za naprowadzenie mnie na właściwe tory. W IE 7 skrypt działa.
Pozdrawiam
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.