Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: checkbox - zaznaczenie wszystkich
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
qlash
witam

mam taki problem, otoz na stronie bede mial dynamicznie tworzona liste a przy kazdej jakis checkbox. lista tworzona jest przez php nie przez js i teraz mam problem, chce stworzyc przycisk "zaznacz/odznacz wszystkie"
i nie wiem jak sie do niego zabrac: jakie id nadac checbox'om i jak sprawdzic czy takie id istnieje?
chcialbym aby to w miare mozliwosci bylo tworzone dynamicznie, a nie np. php wysyla do zmiennej js na pocz ilosc takich checkbox'ow

pozdrawiam
DjKermit
Kod
function selectCheckBoxes(val) {
    if (document.checkBoxesChecked)
        document.checkBoxesChecked = false;
    else
        document.checkBoxesChecked = true;
    if (val == undefined)
        var cb = document.getElementsByTagName('input');
    else
        var cb = document.getElementsByName($val);
    for (var i = 0; i < $cb.length; i++) {
        if (cb[i].type == 'checkbox') cb[i].checked = document.checkBoxesChecked;
    }
}

wywołanie
selectCheckBoxes();
zaznacza wszystkie checkbox'y w dokumencie

selectCheckBoxes('nazwa');
zaznacza wszystkie chceckbox'y o zdefiniowanej nazwie (name="nazwa")
misterdexter
Trochę siłowo to robisz

Zamiast:
Kod
if (document.checkBoxesChecked)
        document.checkBoxesChecked = false;
    else
        document.checkBoxesChecked = true;


Możesz przecież dać:
Kod
document.checkBoxesChecked = !document.checkBoxesChecked



Qlash spróbuj tego:
Kod
function selectCheckboxes(what,pref,stan){
  for(i=0;i<what.elements.length;i++){
    if(what.elements[i].type == "checkbox" && what.elements[i].name.substring(0,pref.length) == pref){
      what.elements[i].checked=stan;
    }
  }
}


Funkcja ma trzy parametry
- formularz, z którego checkbox'y mają być zaznaczone
- prefix nazwy checkbox'a (mogą się różnić np nr'ami w sufix'ie)
- stan checkbox'ów po zmianie

Przykładowy uproszczony kod:
  1. <input type="checkbox" name="all" onclick="selectCheckboxes(this.form,'ch[',this.checked)" /><br/>
  2. <input type="checkbox" name="ch[0]" /><br/>
  3. <input type="checkbox" name="ch[1]" /><br/>
  4. <input type="checkbox" name="ch[2]" />
  5. </form>
DjKermit
Cytat
Możesz przecież dać:
Kod
document.checkBoxesChecked = !document.checkBoxesChecked

Fakt, dobra uwaga, dzięki.
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.