prihlasenyprihlasit | registrovat

Neurčité checkboxy

Potrebovali ste niekedy tretí, takzvaný neurčitý stav pre checkbox? Prečítajte si o ňom pár informácií.

Checkboxy môžu mať len dve hodnoty: checked alebo unchecked. Predvolene je unchecked. V HTML to môžete meniť takto:







Vizuálne sú vlastne tri stavy checkboxu: checked, unchecked alebo indeterminate. Vyzerajú takto:

checkbox stavy

Je tu niečo čo by ste mali vedieť o indeterminate checkboxoch:

Nemôžte urobiť indeterminate checkbox cez HTML. Neexistuje žiaden indeterminate atribút. Je to vlastnosť políčka, ktorú môžete zmeniť pomocou JavaScriptu.

var checkbox = document.getElementById("some-checkbox");
checkbox.indeterminate = true;

alebo jQuery štýl:

$("#some-checkbox").prop("indeterminate", true); // prop je od jQuery 1.6

Neurčitý stav je len vizuálny. Checkbox má stále buď checked alebo unchecked hodnotu, ktorá bude odoslaná, ak je súčasťou formulára. To znamená, že vizuálne neurčitý stav zakrýva skutočnú hodnotu políčka tak, aby dával lepší zmysel vo vašom UI.

Rovnako, ako samotný checkbox, neurčitý stav sa líši v rôznych prehliadačoch. Tu je Opera 11.50 na Mac:

Opera 11.50 Mac

Využitie

Dôvod, prečo to vôbec píšem je, pretože som mal prípad využitia, kde dochádzalo k tomuto stavu: vnorené checkboxy. Každý checkbox môže mať chckbox potomkov. Ak sú všetci potomkovia checked, môže byť checked. Ak žiadny nieje checked, je unchecked. Ak sú len niektoré z nich checked, potom sa jedná o neurčitý stav (v tomto prípade to symbolicky znamená "čiastočne" zaškrtnutý).

Opera

Táto ukážka nieje dokonalá. Pre určenie stavu kontroluje len jednu úroveň nahor. Ideálne by mal kontrolovať rekurzívne až úplne na vrchol. Ak to chcete opraviť, urobte to a ja aktualizujem kód a pridám vaše meno.

http://css-tricks.com/13467-indeterminate-checkboxes/

celkom 0

Komentáre

Zatiaľ žiadne komentáre

© 2009 Shaddow admin hosting od VIPHosting