| Autor | Zpráva | ||
|---|---|---|---|
| stepanka Profil * |
#1 · Zasláno: 3. 7. 2009, 16:22:00
Ahoj,
prosím, pomozte někdo... Mám JS funkci pro zaškrtnutí/odškrtnutí všech checkboxů v daném objektu. Vypadá takto: function SelectAllFromGroup(gID) {
var group = document.getElementById(gID);
var inputs = group.getElementsByTagName('input');
var zatrzeno=true;
var checkit=true;
for ( var i = 0; i < inputs.length; i++ ) {
if (inputs[i].checked == false)
zatrzeno=false;
}
if (zatrzeno==false) {
checkit=true;
} else {
checkit=false;
}
for ( var i = 0; i < inputs.length; i++ ) {
inputs[i].checked = checkit;
}
}Funguje to, pokud mám jeden objekt (<td id="g">, <div id="g">), někde u toho <a href="#" onclick="SelectAllFromGroup(\'g\')">Označit vše</a> A já bych tu funkci potřebovala upravit takto: Potřebuju mít stejný odkaz "Označit vše", ale checkboxy jsou nyní v několika <td id="g"> buňkách tabulky. Přesněji řečeno mám v záhlaví tabulky odkaz "Označit vše" a potom načítám data z databáze a cyklem vypisuju několik řádků tabulky. Každá buňka je tedy otevřena a zavřena a i když mají všechny stejné id (id="g"), tak se označí jen checkbox v první buňce. Šlo by to nějak upravit, aby ta funkce uměla označit všechny checkboxy ve VŠECH objektech s id="g"? Mockrát děkuju. |
||
| stepanka Profil * |
#2 · Zasláno: 3. 7. 2009, 17:45:48
Už nic, už to mám... samozřejmě jde nastavit ID celé tabulce, pak to funguje. Nevím proč mě to nenapadlo dřív..
|
||
| los Profil * |
#3 · Zasláno: 3. 7. 2009, 22:28:25
Síce to už máš, ale:
1, V prvom cykle môžeš hneď po nájdení prvého nezaškrtnutého inputu cyklus ukončiť, t.j. použiť break. 2, Druhá podmienka by sa dala zapísať rovno jedným príkazom (checkit = !zatrzeno), ale v podstate premennú checkit vôbec nepotrebuješ, takže celá podmienka je navyše. V poslednom cykle stačí checkit nahradiť za !zatrzeno. Sú to drobnosti, ale keď sa takých drobností nahromadí viac, tak je potom celý program zbytočne neprehľadný. |
||
| stepanka Profil * |
#4 · Zasláno: 5. 7. 2009, 10:25:39
los
Aha, děkuju... Nemohl bys mi tu funkci přepsat do té podoby, o které píšeš? Možná jsi něco malého zapomněl, nebo jsem Tě nepochopila s tím breakem, ale když to upravuju podle Tvého popisu, tak mi to moc dobře nefunguje... moc díky. |
||
|
Časová prodleva: 17 let
|
|||
0