选择按钮用于从列表中使用按钮选择单个或多个项目。
import SelectButton from 'primevue/selectbutton';
选择按钮与v-model属性一起使用,用于双向值绑定以及options集合。选项的标签和值分别使用optionLabel和optionValue属性定义。请注意,当选项是简单的原始值(如字符串数组)时,不需要optionLabel和optionValue。
<SelectButton v-model="value" :options="options" />
选择按钮与PrimeVue 表单库无缝集成。
<Form v-slot="$form" :resolver="resolver" :initialValues="initialValues" @submit="onFormSubmit" class="flex flex-col gap-4">
<div class="flex flex-col gap-1">
<SelectButton name="selection" :options="options" />
<Message v-if="$form.selection?.invalid" severity="error">{{ $form.selection.error?.message }}</Message>
</div>
<Button type="submit" severity="secondary" label="Submit" />
</Form>
选择按钮默认只允许选择一个项目,设置multiple选项可以允许选择多个项目。在多个情况下,模型属性应该是一个数组。
<SelectButton v-model="value" :options="options" optionLabel="name" multiple aria-labelledby="multiple" />
默认情况下,选项的标签用作项目的显示文本,对于自定义内容支持,请定义一个option模板,该模板将选项实例作为参数。
<SelectButton v-model="value" :options="options" optionLabel="value" dataKey="value" aria-labelledby="custom">
<template #option="slotProps">
<i :class="slotProps.option.icon"></i>
</template>
</SelectButton>
选择按钮提供small和large尺寸作为基本尺寸的替代方案。
<SelectButton v-model="value1" :options="options" size="small" />
<SelectButton v-model="value2" :options="options" />
<SelectButton v-model="value3" :options="options" size="large" />
无效状态使用invalid属性显示,以指示验证失败。当与表单验证库集成时,可以使用此样式。
<SelectButton v-model="value" :options="options" aria-labelledby="basic" allowEmpty :invalid="value === null" />
当存在disabled时,元素完全不能编辑和聚焦。也可以使用optionDisabled属性禁用某些选项。
<SelectButton v-model="value" :options="options" disabled />
<SelectButton v-model="value" :options="options2" optionDisabled="constant" optionLabel="name" />
选择按钮组件在内部使用切换按钮,并具有group角色。可以使用aria-labelledby属性提供描述该组件的值。
键盘交互源自浏览器对组中复选框的本机处理。
按键 | 功能 |
---|---|
tab | 将焦点移动到页面选项卡顺序中的下一个可聚焦元素。 |
shift + tab | 将焦点移动到页面选项卡顺序中的上一个可聚焦元素。 |
空格 | 切换按钮的选中状态。 |