选择按钮

选择按钮用于从列表中使用按钮选择单个或多个项目。


import SelectButton from 'primevue/selectbutton';

选择按钮与v-model属性一起使用,用于双向值绑定以及options集合。选项的标签和值分别使用optionLabeloptionValue属性定义。请注意,当选项是简单的原始值(如字符串数组)时,不需要optionLabeloptionValue


<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>

选择按钮提供smalllarge尺寸作为基本尺寸的替代方案。


<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将焦点移动到页面选项卡顺序中的上一个可聚焦元素。
空格切换按钮的选中状态。