跳到主要內容
+

單選按鈕群組

單選按鈕群組允許使用者從一組選項中選擇一個選項。

當使用者需要看到所有可用選項時,請使用單選按鈕。如果可用選項可以摺疊,請考慮使用Select 元件,因為它佔用的空間較小。

單選按鈕應預設選取最常用的選項。

單選按鈕群組

RadioGroup 是一個有用的包裝器,用於將 Radio 元件分組,它提供了更簡單的 API,以及群組適當的鍵盤可訪問性。

按下 Enter 鍵開始編輯

方向

若要水平排列按鈕,請設定 row 屬性

受控

您可以使用 valueonChange 屬性來控制單選按鈕

按下 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) 來完成的。

  • 當無法使用標籤時,有必要將屬性直接新增至輸入元件。在這種情況下,您可以透過 inputProps 屬性套用其他屬性 (例如 aria-labelaria-labelledbytitle)。

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

API

請參閱以下文件,以取得此處提及之元件的所有屬性和類別的完整參考。