菜单

复选框组件

相关源文件

Semantic UI 中的 Checkbox 组件提供了增强的复选框功能,具有多种状态、类型和行为。该组件将原生的 HTML 复选框转换为交互式、可定制的 UI 元素,包括标准的复选框、单选按钮、开关和滑块。

目录

概述

Semantic UI Checkbox 组件实现为一个 jQuery 插件,它增强了 HTML 的复选框和单选输入。它提供了一致的 API 来管理不同复选框类型的状态、外观和行为。

组件结构

来源: src/definitions/modules/checkbox.js22-773 src/definitions/modules/checkbox.less29-41

组件架构

Checkbox 组件遵循 Semantic UI 中使用的模块模式。它附加到 DOM 元素,并提供操作状态、处理事件和响应用户交互的方法。

来源: src/definitions/modules/checkbox.js63-752

复选框类型

Checkbox 组件支持四种不同的类型,每种类型都有独特的视觉呈现和行为。

标准复选框

标准复选框提供二元选择,并带有一个可选的中间状态。

单选按钮

单选按钮是一种变体,它只允许具有相同 name 属性的组内进行一次选择。

滑块

滑块为二元选项提供视觉滑动控件。

切换

开关是用于启用/禁用选项的类似开关的控件。

来源: src/definitions/modules/checkbox.less277-573

状态和行为

复选框有多种状态,可以通过编程或用户交互来应用。

状态管理描述CSS 类JavaScript 方法
选中选中状态.checkedcheck()
未选中未选中状态(无类)uncheck()
中间状态第三种状态(既非选中也非未选中).indeterminateindeterminate()
确定状态明确的选中或未选中状态(无类)determinate()
已禁用无法交互.disableddisable()
已启用正常交互状态(无类)enable()
只读无交互的视觉状态.read-only(通过属性设置)

来源: src/definitions/modules/checkbox.js220-292 src/definitions/modules/checkbox.less129-265

方法和 API

Checkbox 组件提供了用于以编程方式控制复选框的方法

方法描述
$('.ui.checkbox').checkbox('check')选中复选框
$('.ui.checkbox').checkbox('uncheck')取消选中复选框
$('.ui.checkbox').checkbox('indeterminate')设置为中间状态
$('.ui.checkbox').checkbox('determinate')清除中间状态
$('.ui.checkbox').checkbox('enable')启用复选框
$('.ui.checkbox').checkbox('disable')禁用复选框
$('.ui.checkbox').checkbox('toggle')切换当前状态
$('.ui.checkbox').checkbox('is checked')返回是否选中
$('.ui.checkbox').checkbox('is unchecked')返回是否未选中
$('.ui.checkbox').checkbox('is indeterminate')返回是否为中间状态
$('.ui.checkbox').checkbox('is disabled')返回是否禁用
$('.ui.checkbox').checkbox('is enabled')返回是否启用

来源: src/definitions/modules/checkbox.js220-498 src/definitions/modules/checkbox.js575-590 src/definitions/modules/checkbox.js309-334

事件和回调

Checkbox 组件提供各种事件的回调

该组件提供以下回调

回调目的
onChange在任何状态更改后触发
onChecked选中后触发
onUnchecked取消选中后触发
onDeterminate变为确定状态后触发
onIndeterminate变为中间状态后触发
onEnable启用后触发
onDisable禁用后触发
beforeChecked选中之前(可取消)
beforeUnchecked取消选中之前(可取消)
beforeDeterminate变为确定状态之前(可取消)
beforeIndeterminate变为中间状态之前(可取消)

来源: src/definitions/modules/checkbox.js789-807 src/definitions/modules/checkbox.js220-267

配置选项

Checkbox 组件可以通过各种选项进行配置

选项默认描述
uncheckable'auto'单选按钮是否可以取消选中
fireOnInitfalse在初始化时是否触发回调
onChangefunction(){}值更改时调用
onCheckedfunction(){}选中时调用
onUncheckedfunction(){}取消选中时调用
onDeterminatefunction(){}确定状态时调用
onIndeterminatefunction(){}中间状态时调用
onEnablefunction(){}启用时调用
onDisablefunction(){}禁用时调用

Checkbox 组件还通过主题系统提供了几种 CSS 自定义选项,包括大小、颜色、动画和间距。

来源: src/definitions/modules/checkbox.js775-829 src/themes/default/modules/checkbox.variables1-193

DOM 结构

Checkbox 组件创建以下 DOM 结构

.ui.checkbox
  input[type="checkbox"]
  label

单选按钮

.ui.radio.checkbox
  input[type="radio"]
  label

滑块和开关

.ui.slider.checkbox
  input[type="checkbox"]
  label

.ui.toggle.checkbox
  input[type="checkbox"]
  label

来源: src/definitions/modules/checkbox.js527-538 src/definitions/modules/checkbox.less29-55

键盘支持

Checkbox 组件提供键盘交互,支持

  • 空格键切换复选框
  • 回车键切换复选框
  • Escape 键失焦复选框

来源: src/definitions/modules/checkbox.js190-217