Autor Zpráva
matypa
Profil
Dobrý den,

Předem děkuji za jakoukoli pomoc.

Mám třídu checkboxů,

<input type="checkbox" class="auta"  value="1">
<input type="checkbox" class="auta"  value="2">
<input type="checkbox" class="auta"  value="3">

Potřeboval bych aby pomocí JS po odškrtnutí všech checkboxů v class="auta" vyskočilo dialogové okno.

Děkuji za pomoc :)
Michal Maršálek
Profil
Dobrý den,
document.getElementsByClass("auta")
ti vrátí všechny objekty které mají třídu "auta". Za předpokladu, že tuto třídu dáváš jen checkboxům, tam máš všechny checkbox.
Pak to projedeš cyklem foreach a zjišťuješ, zda jsou zaškrtnuté (checked) a případně ještě zkotroluješ, jestli to vůbec je checkbox ^.
Pokud nenarazíš, na žádné false, vypálíš dialog. Tuto funkci dáš třeba na událost onChange k těm checkboxům.
Chamurappi
Profil
Reaguji na Michala Maršálka:
Metoda getElementsByClass neexistuje nikde. Metodu getElementsByClassName nezná Explorer starší než 9.


Reaguji na matypu:
Proč se chceš orientovat zrovna podle třídy? To bývá nešikovné.
Lepší by bylo vybrat všechny <input>y se společným rodičem a třeba i chytat onclick na něm.
Michal Maršálek
Profil
Chamurappi:
Omlouvám se za matení.
matypa
Profil
Všem děkuji za reakce, jen jsem v JS začátečník a nevím jak na to, nemátě někdo nějaký odkaz na již hotové řešení? Děkuji předem :)

Chamurappi:

Jak jsem již psal, v JS jsem opravdu začátečník a nevím zda by bylo vybrat všechny checkbox ze stejním rodičem či ze stejnou třídou.
_es
Profil
matypa:
Čo si predstavuješ pod „dialógovým oknom“?
matypa
Profil
_es:
window.alert("Bla Bla Bla");
Chamurappi
Profil
Reaguji na matypu:
<div onclick='
  if((event.target || event.srcElement).tagName != "INPUT") return;
  for(var i = 0, input; input = this.getElementsByTagName("input")[i]; i++)
    if(!input.checked) return;
  alert("Bla Bla Bla");
'>
  <input type="checkbox" value="1">
  <input type="checkbox" value="2">
  <input type="checkbox" value="3">
</div>
matypa
Profil
Děkuji moc, problém vyřešen :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: