表单复选框(Form Checkbox Inputs)
为了实现跨浏览器的一致性,<b-form-checkbox-group>
和 <b-form-checkbox>
使用 Bootstrap 的自定义复选框输入来替换浏览器默认复选框输入。 它建立在语义和可访问标记之上,因此可以替代默认的复选框输入。
示例1: 单选框
示例2: 多选复选框
随意混合和匹配 options
【选项】属性和 <b-form-checkbox-group>
中的 <b-form-checkbox>
。手动放置的 <b-form-checkbox>
输入将显示在 options
【选项】属性生成的所有复选框输入 下方 。要使它们出现在 options
【选项】生成的输入上方 ,请 first
【首先】将它们放在指定的槽中。
复选框组选项数组
options
可以是字符串或对象的数组。可用字段:
value
将在 v-model
上设置的所选值
disabled
禁用的项目供选择
text
显示文本或 html
显示基本的嵌入式 html
value
可以是字符串,数字或简单对象。避免在值中使用复杂类型。
如果同时提供 html
和 text
则 html
优先。html
字段中仅支持基本/本机HTML(组件不起作用)。请注意,并非所有浏览器都会在 <select>
的 <option>
元素内呈现内联html(即 <i>
,<strong>
等)。
请谨慎 将用户提供的内容放在 html
字段中,因为如果不先 sanitize【清理】用户提供的字符串,这可能会使您容易受到 XSS attacks【XSS攻击】。
If an array entry is a string, it will be used for both the generated value
and text
fields.
You can mix using strings and objects in the array.
Internally, BootstrapVue will convert the above array to the following array (the array of objects) format:
选项作为对象数组
如果缺少 value
,则 text
将同时用作 value
和 text
字段。 如果使用 html
属性,则 必须 提供 value
属性。
在内部,BootstrapVue会将上面的数组转换为下面的数组(array of objects【对象数组】)格式:
更改选项字段名称
如果要自定义字段属性名称(例如,使用 name
字段显示 text
),可以通过将 text-field
,html-field
,value-field
,和 disabled-field
属性设置为包含您想要使用的属性名的字符串来轻松地更改它们:
内联和堆叠复选框
默认情况下,<b-form-checkbox-group>
组件呈现嵌入式复选框,而 <b-form-checkbox>
呈现块级(堆叠)复选框。
设置 stacked
【叠放】 <b-form-checkbox-group>
上的属性,以将每个表单控件彼此放置在一起;或者,如果使用不在 <b-form-checkbox-group>
内的单个复选框,则将 inline
【内联】属性设置在 <b-form-checkbox>
。
控制尺寸
使用 size
属性控制复选框的大小。 默认大小为中。 支持的大小值为 sm
(小)和 lg
(大)。
可以在各个 <b-form-checkbox>
组件上设置大小,也可以继承 <b-form-checkbox-group>
的大小设置。
注意: Bootstrap v4.x 本身不支持自定义复选框控件的大小。但是,BootstrapVue 包含自定义SCSS / CSS,它增加了对自定义复选框的大小的支持。
复选框值和 v-model
默认情况下,<b-form-checkbox>
值在选中时为 true
,在未选中时为 false
。您可以通过分别指定 value
和 unchecked-value
属性来定制检查和未检查的值。
v-model
绑定到 checked
【检查】的属性。 当具有绑定到单个数据状态变量的多个复选框时,必须 为 v-model
提供数组引用( []
)请勿直接使用 checked
的属性。
注意,当 v-model
绑定到多个复选框(即数组引用)时,不使用 unchecked-value
。在 v-model
绑定数组中只返回选中复选框的值。您应该为每个复选框的值属性提供唯一的 value
(当绑定到数组时,默认值 true
不起作用)
要预先检查所有音频,请将 v-model
设置为您要预先选择的检查值。
当将单个 <b-form-checkbox>
组件放置在 <b-form-checkbox-group>
中时,大多数属性和 v-model
都继承自 <b-form-checkbox-group>
。
注意: unchecked-value
属性 不会 影响本机 <input>
的 value
属性,因为浏览器在表单提交中不包括未选中的框。 为确保在本地 <form>
提交中提交两个值之一(例如,“'yes'
”或“'no'
”),请改用单选输入。 这与 Vue has with native checkbox inputs【Vue对本机复选框输入】的限制相同。
多个复选框和可访问性
将多个复选框绑定在一起时,必须将组中所有 <b-form-checkbox>
的 name
属性设置为相同的值,或者通过 <b-form-checkbox-group>
的 name
属性设置。 这将通知辅助技术用户复选框相关,并启用本机浏览器键盘导航。
每当使用多个复选框时,建议将复选框放置在 <b-form-group>
组件中,以将标签与整个复选框组相关联。请参阅上面的示例。
您可以选择使复选框单独或成组显示为按钮。
按钮样式复选框处于 选中 状态时,将自动将 .active
类应用于标签。
通过将 button
属性设置为 true
,可以使用按钮外观呈现单个复选框
通过将 button-variant
属性设置为标准Bootstrap按钮变量之一来更改按钮变量(有关受支持的变量,请参见 <b-button>
)。 默认变量是 secondary
【次要】变量。
inline
【内嵌】属性对单个按钮样式的复选框无效。
通过在 <b-form-checkbox-group>
上设置 buttons
属性,以按钮组的外观呈现复选框组。 通过将 button-variant
属性设置为标准 Bootstrap 按钮变量之一来更改按钮变量(有关受支持的变量,请参见 <b-button>
)。默认的 button-variant
为 secondary
【次要】按钮。
切换样式复选框
<b-form-checkbox>
和 <b-form-checkbox-group>
组件支持开关样式。
注意: 如果复选框处于 button mode【按钮模式】,则切换模式将无效。
单独的复选框开关样式
通过将 switch
【开关】属性设置为 true
,可以使用开关外观呈现单个复选框。
分组开关样式复选框
通过在 <b-form-checkbox-group>
上设置 switches
【开关】属性,以开关的外观呈现复选框组。
开关尺寸
使用 size
属性控制开关的大小。 默认大小为中。 支持的大小值为 sm
(小)和 lg
(大)。
可以在各个 <b-form-checkbox>
组件上设置大小,也可以继承 <b-form-checkbox-group>
的大小设置。
注意: Bootstrap v4.x 本身不支持自定义开关控件的大小。但是,BootstrapVue 包含自定义 SCSS / CSS,它增加了对自定义开关的大小支持。
您可以通过设置 plain
属性使 <b-form-checkbox-group>
或 <b-form-checkbox>
呈现浏览器本机复选框输入。
注意: 当设置一个 button
或多个 button
时,plain
属性无效。
上下文状态
Bootstrap 包括大多数表单控件上 valid
【有效】和 invalid
【无效】状态的验证样式。
一般来说,您需要针对特定类型的反馈使用特定状态:
false
(表示无效状态)非常适合存在阻塞或必填字段的情况。用户必须正确填写此字段才能提交表单。
true
(表示有效状态)非常适合在整个表单中都进行逐字段验证并希望鼓励用户遍历其余字段的情况。
null
不显示验证状态(既不有效也不无效)
要在 <b-form-checkbox>
上应用上下文状态图标之一,请将 state
属性设置为 false
(对于无效),true
(对于有效)或 null
(无验证状态)。
注意: 在按钮模式下,不 支持上下文状态。
上下文状态和验证示例
所需约束
当使用单独的 <b-form-checkbox>
组件(不在 <b-form-checkbox-group>
中),并且希望表单中 required
【需要】复选框时,必须 在每个 <b-form-checkbox>
上提供一个 name
【名称】,以便所需的约束能够工作。所有绑定到相同 v-model
的 <b-form-checkbox>
组件 必须 具有相同的 name
【名称】。
所需的 name
【名称】是为了辅助技术(如屏幕阅读器和键盘只有用户)知道该复选框属于同一形式变量(这个名字会自动使本机浏览器键盘导航),因此 required
【需要】将只工作如果 name
【名称】是组。<b-form-checkbox-group>
将自动生成一个唯一的输入名称如果没有提供。
自动聚焦
当将 autofocus
【自动对焦】属性设置为 <b-form-checkbox>
时,输入将在插入(即 mounted【安装】)到文档中时自动对焦,或者在Vue <keep-alive>
组件内部重新激活。 请注意,此道具 不会 在输入上设置 autofocus
【自动对焦】属性,也无法告诉输入何时可见。
不确定(三态)支持
通常,复选框输入只能具有两种状态:checked【选中】或 unchecked【未选中】。 它们可以具有任何值,但是他们可以通过表单提交来提交(checked【选中】)或不提交(unchecked【取消选中】)该值(尽管 BootstrapVue 在单个复选框上允许 unchecked【未选中】状态的值)
从 视觉 上看,复选框实际上有三种状态:checked【选中】、unchecked【未选中】或 indeterminate【不确定】。
indeterminate【不确定】状态 仅是可见 的。该复选框仍被选中或未选中为值。这意味着视觉上不确定的状态掩盖了复选框的真实用处,从而使UI更有意义!
<b-form-checkbox>
支持通过 indeterminate
【不确定】属性设置此视觉不确定状态(默认为 false
)。 单击复选框将清除其不确定状态。 通过使用 .sync
修饰符 v-binding【绑定】 indeterminate
【不确定】的属性,可以将 indeterminate
【不确定】的属性同步到复选框的状态。
注意: 按钮或切换模式不支持不确定的样式,<b-form-checkbox-group>
(多个复选框)也不支持不确定的样式。
单个不确定复选框:
不确定的复选框 use-case【使用案例】示例:
注意: button
【按钮】模式或多个复选框模式均不支持不确定。还请注意,普通复选框(即使用 plain
【普通】属性)在Windows / Linux / Mac / Android上也支持不确定状态,但在 iOS 上不支持。
不确定的状态和可访问性
并非所有屏幕阅读器都会将不确定状态传达给屏幕阅读器用户。因此,如果不确定状态在您的应用程序中具有特殊的上下文含义,则建议向用户提供某种形式的文本反馈(可能通过 .sr-only
类)。
组件引用
<b-form-checkbox-group>
也可以通过以下别名使用:
<b-checkbox-group>
<b-check-group>
注意:组件别名仅在导入所有 BootstrapVue 或使用组件组插件时可用。
属性 (Click to sort Ascending) |
类型 |
默认值 |
描述 |
id |
String |
|
用于在渲染的内容上设置“id”属性,并用作根据需要生成任何其他元素ID的基础 |
name |
String |
|
设置表单控件上“name”属性的值 |
disabled |
Boolean |
|
设置为“true”时,禁用组件的功能并将其置于禁用状态 |
required |
Boolean |
false |
将'required'【需要】属性添加到表单控件 |
form |
String |
|
表单控件所属的表单的 ID 。在控件上设置“form”属性 |
autofocus |
Boolean |
false |
设置为“ true”时,尝试在安装控件时自动将其调焦,或者在保持活动状态时将其重新激活。未在控件上设置“autofocus”属性 |
validated |
Boolean |
false |
设置后,将 Bootstrap 类“was-validated”添加到组包装器中 |
aria-invalid |
Boolean or String |
false |
在包装器元素上设置“ aria-invalid”属性值。如果未提供,“state”属性将控制属性 |
stacked |
Boolean |
false |
设置后,以堆叠模式呈现复选框组 |
plain |
Boolean |
false |
以普通模式而不是自定义样式模式呈现表单控件 |
buttons |
Boolean |
false |
设置后,使用按钮样式呈现此组中的复选框 |
button-variant |
String |
'secondary' |
指定适用于按钮样式复选框的 Bootstrap 上下文颜色主题变量 |
options |
Array or Object |
[] |
要在组件中渲染的项目数组 |
value-field |
String |
'value' |
'options'【选项】数组中的字段名称,该字段名称应用于该值 |
text-field |
String |
'text' |
'options'【选项】数组中应用于文本标签的字段名称 |
html-field |
String |
'html' |
'options'【选项】数组中的字段名称,应该用于 html 标签而不是文本字段。请谨慎使用。 |
disabled-field |
String |
'disabled' |
'options'【选项】数组中应用于禁用状态的字段名称 |
size |
String |
|
设置组件外观的大小。'sm','md'(默认)或'lg' |
state |
Boolean |
|
控制组件的验证状态外观。“true”表示有效,“false”表示无效”,“null”表示无验证状态 |
switches |
Boolean |
false |
设置后,使用开关样式渲染组中的复选框 |
checked v-model |
Array |
|
组中选中的复选框的当前值。有多个复选框时必须为数组 |
插槽名称 |
描述 |
first |
用于放置 b-form-check 的插槽,以便它们出现在由 options【选项】属性生成的检查之前 |
事件 |
参数 |
描述 |
input |
checked - 复选框的值。值将是一个数组。
|
更改检查值时发出 |
change |
checked - 复选框的值。值将是一个数组。
|
由于用户交互而更改选定值时发出 |
<b-form-checkbox>
也可以通过以下别名使用:
注意:组件别名仅在导入所有 BootstrapVue 或使用组件组插件时可用。
属性 (Click to sort Ascending) |
类型 |
默认值 |
描述 |
value |
Any |
true |
选中此复选框时返回的值 |
checked v-model |
Any |
|
复选框的当前值。当有多个复选框绑定到同一 v-model 时,必须是一个数组 |
inline |
Boolean |
false |
设置后,将复选框呈现为内联元素而不是宽度为100%的块 |
plain |
Boolean |
false |
以普通模式而不是自定义样式模式呈现表单控件 |
button |
Boolean |
false |
设置后,呈现带有按钮外观的复选框 |
button-variant |
String |
|
在“button”模式下适用于 Bootstrap 的主题颜色 |
aria-label |
String |
|
设置渲染元素上“aria-label”属性的值 |
aria-labelledby |
String |
|
提供此组件标签的元素的ID。用作“aria-labelledby”属性的值 |
id |
String |
|
用于在呈现的内容上设置“id”属性,并用作根据需要生成任何其他元素ID的基础 |
name |
String |
|
设置表单控件上“name”属性的值 |
disabled |
Boolean |
|
设置为“true”时,禁用组件的功能并将其置于禁用状态 |
required |
Boolean |
false |
将“required”属性添加到表单控件 |
form |
String |
|
表单控件所属的表单的ID。在控件上设置“form”属性 |
autofocus |
Boolean |
false |
设置为“ true”时,尝试在安装控件时自动将其调焦,或者在保持活动状态时将其重新激活。未在控件上设置“autofocus”属性 |
size |
String |
|
设置组件外观的大小。'sm','md'(默认)或'lg' |
state |
Boolean |
|
控制组件的验证状态外观。 “ true”表示有效,“ false”表示无效”,“ null”表示无验证状态 |
unchecked-value |
Any |
false |
取消选中此复选框时返回的值。 当多个复选框绑定到同一 v-model 数组时,注意不适用 |
indeterminate |
Boolean |
false |
使复选框处于不确定状态。 通过.sync修饰符可同步 |
switch |
Boolean |
false |
设置后,使用复选框外观呈现复选框 |
事件 |
参数 |
描述 |
input |
checked - 复选框的值。当绑定到多个复选框时,value将是一个数组。
|
更改所选值时发出 |
change |
checked - 复选框的值。当绑定到多个复选框时,value将是一个数组。
|
由于用户交互而更改选定值时发出 |
导入单个组件
您可以通过以下命名的导出将单个组件导入到项目中:
组件 |
命名输出 |
导入路径 |
<b-form-checkbox-group> |
BFormCheckboxGroup |
bootstrap-vue |
<b-form-checkbox> |
BFormCheckbox |
bootstrap-vue |
示例:
作为Vue.js插件导入
这个插件包含了上面列出的所有组件。插件还包括任何组件别名。
命名输出 |
导入路径 |
FormCheckboxPlugin |
bootstrap-vue |
示例: