Pri práci s JavaScriptom je občas možné naraziť na veci, ktoré vedia prekvapiť no hneď vás nenapadne, prečo tomu tak je. Jedným z príkladov je aj widget dijit/form/CheckBox, resp. checkbox ako taký. Pri práci s formulármi sa už asi každý naladí na získavanie hodnôt cez metódu get("value"). No šok príde, keď namiesto očakávanej hodnoty true sa vráti hodnota on. Príklad: Deklaratívny zápis widgetu CheckBox.
1
2
3
4
<div data-dojo-type="dijit/form/CheckBox"
data-dojo-props="onChange : function()
{console.log(this.get('value'))}">
</div>
Dôvod vrátenia hodnoty on namiesto true je nesprávne použitie vlastnosti v metóde get(). V tomto prípade je potrebné použiť vlastnosť checked. Príklad: Deklaratívny zápis widgetu CheckBox.
1
2
3
4
<div data-dojo-type="dijit/form/CheckBox"
data-dojo-props="onChange : function()
{console.log(this.get('checked'))}">
</div>
Záver
Ako vidieť monotónnosť v určitom slova zmysle niekedy so sebou prináša aj zaujímavé situácie, kedy sa nám aj nesprávne vrátené hodnoty zdajú byť správne a zabúdame na skutočne podporované vlastnosti objektov.22.2.2014, Matej LednárKategória: DojoDojo,dijit/form/CheckBox,value,checked,getŽiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.Viac informácií nájdete v sekcii O projekte.