CheckBox

CheckBox является прямым наследником ToggleButton и представляет собой стандартную замену обычного элемента .

Чтобы использовать этот диджит, достаточно подключить необходимый ресурс и добавить атрибут dojoType в нужный тег. Мы могли бы использовать этот диджит в странице из примера 13.4, активируя кнопку «Sign Up!» (зарегистрируйтесь) после щелчка пользователя на CheckBox в знак подтверждения того, что он знает о ваших тайных намерениях завалить его спамом:

I understand that you intend to spam me.

(button id="signup" disabled dojoType="dijit.form.Button" type="submit")
Sign Up!
(/button)

Чтобы программно установить флажок, можно вызвать метод setValue(true), который запишет значение true не только в атрибут value диджита, но и в атрибут checked. Однако, как и у обычных элементов checkbox в языке разметки HTML, состояние и значение флажка являются различными понятиями.


Состояние флажка может быть одним из двух – отмечен или не отмечен, а определить состояние можно с помощью атрибута checked. Однако в атрибуте value, когда флажок отмечен, при отправке формы серверу можно передавать любые, не только логические, значения. Например, тег добавит в строку запроса параметр pleaseSpamMe=yes, если для отправки формы используется запрос типа GET. (По умолчанию атрибут value имеет значение "on".)

Тот факт, что метод getValue и атрибут value не обязательно возвращают одно и то же значение, может вызывать недоумение. Дело в том, что метод getValue возвращает значение, свидетельствующее о том, был ли отмечен флажок независимо от фактического значения атрибута value. Причина такого поведения состоит в том, что в большинстве случаев метод getValue используется для определения видимого состояния – включено/выключено, а не для получения фактического значения атрибута value, которое может не отражать состояние включено/выключено.

Поскольку в таких различиях, существующих между некоторыми возможностями, легко запутаться, рассмотрим несколько наиболее типичных примеров использования диджита CheckBox:


В примере 13.9 демонстрируется несколько вариантов манипулирования диджитом, а также даются комментарии, описывающие происходящее.
Пример 13.9.


Типичные примеры использования CheckBox
/* Проверить начальное состояние */
dijit.byId("foo").checked // false
dijit.byId("foo").getValue() // "on"
/* Вызвать setValue со значением true */
dijit.byId("foo").setValue(true) // отметить флажок и установить значение true
dijit.byId("foo").checked // true
dijit.byId("foo").getValue() // true
/* Вызвать setValue со значением false */
dijit.byId("foo").setValue(false)// снять флажок и установить значение false
dijit.byId("foo").checked // false
dijit.byId("foo").getValue() // false
/* Вызвать setValue со строковым аргументом */
dijit.byId("foo").setValue("bar")//отметить флажок и установить значение "bar"
dijit.byId("foo").checked // true
dijit.byId("foo").getValue() // "bar"

В большинстве случаев использования CheckBox метод setValue вызывается с логическим значением в качестве аргумента, поэтому велика вероятность, что вам не придется разбираться с таинственными эффектами, которые могут возникнуть при смешивании понятий состояния и значения.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
Button
ComboBox
ComboButton
CurrencyTextBox
DropDownButton

Вернуться в раздел: Dojo / Виджеты форм