跳到主要内容
+

单选按钮组

单选按钮组允许用户从一组选项中选择一个。

当用户需要查看所有可用选项时,请使用单选按钮。如果可用选项可以折叠,请考虑使用 Select 组件,因为它占用空间更少。

单选按钮应默认选择最常用的选项。

单选按钮组

RadioGroup 是一个有用的包装器,用于将 Radio 组件分组,从而提供更简单的 API,并为该组提供适当的键盘可访问性。

Enter 键开始编辑

方向

要水平排列按钮,请设置 `row` 属性

受控

您可以使用 `value` 和 `onChange` 属性控制单选按钮

Enter 键开始编辑

独立单选按钮

Radio 也可以独立使用,无需 RadioGroup 包装器。

Enter 键开始编辑

尺寸

使用 `size` 属性或自定义 svg 图标的字体大小来更改单选按钮的大小。

Enter 键开始编辑
Enter 键开始编辑

标签位置

您可以使用 `FormControlLabel` 组件的 `labelPlacement` 属性更改标签的位置

显示错误

通常,单选按钮应默认选择一个值。如果不是这种情况,您可以在提交表单时未选择任何值的情况下显示错误

明智选择

自定义

这是自定义组件的示例。您可以在 覆盖文档页面 中了解更多信息。

useRadioGroup

对于高级自定义用例,公开了一个 `useRadioGroup()` hook。它返回父单选按钮组的上下文值。Radio 组件在内部使用此 hook。

API

import { useRadioGroup } from '@mui/material/RadioGroup';

返回值

value (对象)

  • value.name (字符串 [可选]):用于引用控件值的名称。
  • value.onChange (函数 [可选]):当选择单选按钮时触发的回调。
  • value.value (任意类型 [可选]):所选单选按钮的值。

示例

Enter 键开始编辑

何时使用

可访问性

(WAI-ARIA: https://www.w3.org/WAI/ARIA/apg/patterns/radio/)

  • 所有表单控件都应具有标签,包括单选按钮、复选框和开关。在大多数情况下,这是通过使用 `<label>` 元素 (FormControlLabel) 完成的。

  • 当无法使用标签时,需要直接向 input 组件添加属性。在这种情况下,您可以通过 `inputProps` 属性应用附加属性(例如 `aria-label`、`aria-labelledby`、`title`)。

<Radio
  value="radioA"
  inputProps={{
    'aria-label': 'Radio A',
  }}
/>

API

请参阅下面的文档,以获得此处提及的组件的所有可用属性和类的完整参考。