Autor Zpráva
Dandys2012
Profil *
Nejsem JavaSkripťák, takže jsem narazil na problém. Mam několik checkboxů číslovaných různorodě.

Např.
ch12
ch19
ch28
ch45
ch66
ch88
ch102

A vim, že chci vybrat všechny zaškrtnout všechny checkboxy od ch19 až po ch66. Tyto dva znám konkrétně.. mezi nimi můžou být různé.
Zkoušel jsem tohle:
for(a=19;a==66;a++)
                { document.getElementById("ch["+a+"]").checked="checked"; } 

Ale nefunguje. Poraďte prosím, kdo máte nějaký nápad.
panther
Profil
Dandys2012:
druhy parametru cyklu for ma byt podminka, ktera se testuje. Jelikoz se 19 nikdy nebude rovnat 66, nevypise se nic.

for(a=19;a<=66;a++)
Dandys2012
Profil *
Bohužel ani tak to nefunguje.. zřejně narazí na problém, že neexistují ch20, ch21, ch22, atd..
_es
Profil
Hranaté zátvorky tam dávaš prečo? Vlastnosť checked môže mať hodnotu true alebo false. Tie checkboxy sú kde? Ak vo formuláre, tak to ide jednoduchšie.
Dandys2012
Profil *
Jsou ve formuláři. Ale já nechci začkrtnout všechny.. chci jen checkboxy mezi 19 a 66 včetně. Hranatý závorky tam dávam, pač jsem to někde vyčet.. jak je to teda kodově správně?
_es
Profil
Dandys2012:
Mam několik checkboxů číslovaných různorodě.
Čo presne znamená v tvojom ponímaní „číslovanie checkboxu“?
Dandys2012
Profil *
PHP mi na základě určitýho výpočtu vyhází několik checkboxů. Např. (jak jsem už psal)

ch12
ch19
ch28
ch45
ch66
ch88
ch102

Následně (nemůžu je zaškrtnout už během generování ) pak vim, že mam zaškrtnout všechny mezi 19 a 66.


ch12, ch19 apod. jsou name checkboxu.
_es
Profil
Dandys2012:
PHP mi na základě určitýho výpočtu vyhází několik checkboxů.
No a ako konkrétne jeden z tých checkboxov vyzerá? Teda konkrétny HTML kód.


Dandys2012:
ch12, ch19 apod. jsou name checkboxu.
No a pozrel si si vôbec, na čo slúži metóda document.getElementById?
Dandys2012
Profil *
Může vypadat např. tak:
<script>
function kontrola_pri_kliknuti(posledni)
    {
            for(a=3359;a<=3389;a++)
                { document.getElementById("ch["+a+"]").checked="true"; } 
        
    }

</script>

<input onClick="kontrola_pri_kliknuti(3314);" type="checkbox" name="ch3314"/>
<input onClick="kontrola_pri_kliknuti(3359);" type="checkbox" name="ch3359"/>
<input onClick="kontrola_pri_kliknuti(3388);" type="checkbox" name="ch3388"/>
<input onClick="kontrola_pri_kliknuti(3389);" type="checkbox" name="ch3389"/>
<input onClick="kontrola_pri_kliknuti(3393);" type="checkbox" name="ch3393"/>
_es
Profil
Dandys2012:
K prvkom formulára je možný prístup:
objektFormulára.elements["namePrvku"]
Dandys2012
Profil *
Takže když formuláři přiřadim id="formular1", tak pak k prvkům přistupuju formular1.elements["ch3314"] ?


for(a=19;a<=66;a++)
                { formular1.elements("ch["+a+"]").checked="true"; } 


Bohužel ani tohle mi nejde.


teda tak: formular1.elements["ch["+a+"]"].checked="true";


Ani tak:
for(a=prvni;a<=posledni;a++)
                { formular1.elements["ch"+a].checked="true"; } 
Chamurappi
Profil
Reaguji na Dandyse2012:
Takže když formuláři přiřadim id="formular1", tak pak k prvkům přistupuju formular1.elements["ch3314"] ?
Ne. Když chceš najít formulář podle id, použiješ metodu na hledání podle id, o které už víš.

checked="true";
Hodnotou vlastnosti checked je true nebo false, ne řetězec.
Dandys2012
Profil *
Teď jste mě do toho pěkně zamotali. Smazal jsi mi druhou diskusi a to sice základní věc:

Jak zaškrtnu JavaScriptem checkbox, který má name="ch3314" ??

Rád bych věděl tenhle základ.. pak už si možná poradim..
Keeehi
Profil
Dandys2012:
Je to tak, jak jsi psal v [#11] s tím rozdílem, že jde vždy o name a ne o id a to jak u checkboxů tak i u formu.

Nešlo by ty checkboxy nameovat postupně a tu děravou řadu mít ve value?
Chamurappi
Profil
Reaguji na Dandyse2012:
Jak zaškrtnu JavaScriptem checkbox, který má name="ch3314" ??
Nastavíš mu vlastnost checked na true. To už ti tu bylo řečeno mnohokrát.
Objekt zaškrtávátka najdeš buď podle id pomocí metody na hledání podle id, nebo podle name v kolekci elements na objektu formuláře. Objekt formuláře najdeš buď podle id pomocí metody na hledání podle id, nebo podle name v kolekci document.forms.
_es
Profil
Chamurappi:
Objekt formuláře najdeš buď podle id pomocí metody na hledání podle id, nebo podle name v kolekci document.forms.
Dandys2012:
Alebo cez document.forms[0], ak ide o prvý formulár v dokumente.
Dandys2012
Profil *
Dobrej nápad, díky. Zadal jsem jim id počítaný od 1 do x a o name jsem se vlastně vůbec nemusel starat.
A pak už jen:
for(a=pvni;a<=posledni;a++)
                { document.getElementById(a).checked=true; } 

Takže díky a hezký den.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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