Autor Zpráva
quatzael
Profil
Existuje v jQuery nějaká spolehlivá metoda jak zjistit jestli je checkbox zaškrtnutej??

Pomocí metody .attr("checked") toho moc udělat nejde..

Navíc je problém, že každý prohlížeč se chová jinak.. Např. IE po refreshi odstraní všechno zaškrtání, ale Mozilla to zachová..
Chamurappi
Profil
Reaguji na quatzaela:
Nekoukej na atributy, ale na vlastnosti. Metoda .attr to dříve nějak spojovala, ale v novějších verzích tuším zavedli .prop, nevím, nepoužívám. Stačí mi nativní vlastnost checked (bez jQuery), u té jsem se nikdy nesetkal s tím, že by neodpovídala skutečnému stavu.

Např. IE po refreshi odstraní všechno zaškrtání, ale Mozilla to zachová
To tuším nezáleží jen na prohlížeči, ale i na kešování. Musíš počítat s oběma možnostmi.
quatzael
Profil
aha, já jsem teď tady ještě našel další řešení, který by měly fungovat 100% na všem:

•if ( elem.checked )
•if ( $(elem).prop("checked") )
•if ( $(elem).is(":checked") )

akorát, že mě to funguje úplně naopak, když když je zaškrtlej tak nic, a když není tak podmínka ok..
mám tam ten checkbox v tom labelu jak jsem teď řešil v tomto vlákně: Checkbox uvnitř labelu
Joker
Profil
quatzael:
Ta první možnost je to, co psal Chamurappi: „Stačí mi nativní vlastnost checked (bez jQuery)“.

akorát, že mě to funguje úplně naopak
Bude špatně napsaná ta podmínka.
Chamurappi
Profil
Reaguji na quatzaela:
akorát, že mě to funguje úplně naopak
Možná, že se na tu vlastnost ptáš ve špatnou chvíli. Třeba událost onchange je taková špatná chvíle, protože některé prohlížeče ji vyvolávají, až když přestane být zaškrtávátko po změně aktivní, pak se při opakovaném klikání může zdát, že je v checked opačná hodnota.
quatzael
Profil
Joker:
no jo, ale co lze zvorat na podmínce, tak aby se chovala přesně obráceně..
Chamurappi
Profil
Reaguji na quatzaela:
!
quatzael
Profil
Chamurappi:
to s tím asi může mít nějakou souvislost.. původně jsem měl totiž ten checkbox na tom obdélníkovým labelu umístěnej absolutně a byl mimo celý labelový element. Musel jsem to trochu komplikovaně řešit kvůli hoverování, ale fungovalo to až na ten případ kdy jsem udělal dvojklik na ten checkbox. Checkbox to tuším bral jen jako jeden klik, ale jQuery jako dva kliky..


Chamurappi:
!

to mi je jasný, ale ten jsem tam neměl.. až pak jsem si ho tam dopsal, aby se mi to chovalo tak jak potřebuju..
quatzael
Profil
Chamurappi:
Možná, že se na tu vlastnost ptáš ve špatnou chvíli.

Už jsem na to přišel.. Měls pravdu.. tu .click() funkci mám přímo na ten label k tomu checkboxu, u kterýho jsem zjišťoval jestli je zaškrtlej nebo ne, takže když jsem na to klikl a podmínka byla až ve vnitř té funkce tak je jasné, že to bylo už podle aktuálního stavu..

Úplná banalita, ale večer mi to prostě už nějak nemyslelo..

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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