• Skip to main content
  • Skip to search
  • Skip to select language
MDN Web Docs
  • References
    • Overview / Web Technology

      Web technology reference for developers

    • HTML

      Structure of content on the web

    • CSS

      Code used to describe document style

    • JavaScript

      General-purpose scripting language

    • HTTP

      Protocol for transmitting web resources

    • Web APIs

      Interfaces for building web applications

    • Web Extensions

      Developing extensions for web browsers

    • Accessibility

      Build web projects usable for all

    • Web Technology

      Web technology reference for developers

  • Learn
    • Overview / MDN Learning Area

      Learn web development

    • MDN Learning Area

      Learn web development

    • HTML

      Learn to structure web content with HTML

    • CSS

      Learn to style content using CSS

    • JavaScript

      Learn to run scripts in the browser

    • Accessibility

      Learn to make the web accessible to all

  • Plus
    • Overview

      A customized MDN experience

    • AI Help

      Get real-time assistance and support

    • Updates

      All browser compatibility updates at a glance

    • Documentation

      Learn how to use MDN Plus

    • FAQ

      Frequently asked questions about MDN Plus

  • Curriculum New
  • Blog
    • Playground

      Write, test and share your code

    • HTTP Observatory

      Scan a website for free

    • AI Help

      Get real-time assistance and support

  • Log in
  • Sign up for free
  1. 開発者向けのウェブ技術
  2. HTML
  3. リファレンス
  4. 要素
    • English (US)
    • Deutsch
    • Español
    • Français
    • Русский
    • 中文 (简体)

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

この記事では

  • 試してみましょう
  • 値
  • 追加の属性
  • ラジオボタンの使用
  • 検証
  • ラジオボタンのスタイル設定
  • 技術的概要
  • 仕様書
  • ブラウザーの互換性
  • 関連情報
  1. HTML
  2. ガイド
  3. コンテンツカテゴリー
  4. コメント
  5. 日付と時刻の形式
  6. 制約検証
  7. ビューポートの meta 要素
  8. レスポンシブ画像
  9. マイクロデータ
  10. マイクロフォーマット
  11. 後方互換モードと標準モード
  12. HTML 早見表
  13. 手引
  14. HTML で用語を定義する
  15. データ属性の使用
  16. 別オリジンの画像の利用
  17. 画像の上にヒットマップを追加する
  18. 読み込みが速い HTML ページを作成する
  19. JavaScript の追加
  20. リファレンス
  21. 要素
    1. 非推奨;
    2. 非推奨;

    3. 非推奨;
    4. 非推奨;
    5. Experimental
    6. 非推奨;
    7. 非推奨;
    8. 非推奨;

ラジオグループのデータ表現

ラジオボタンが選択された状態で上記のフォームが送信されると、フォームのデータには contact=value の形の項目が含まれます。例えば、ユーザーが「電話」ラジオボタンをクリックしてからフォームを送信すると、フォームのデータには contact=phone という行が含まれます。

HTML で value 属性を省略すると、送信されたフォームデータのそのグループには on の値が割り当てられます。この場合、ユーザーが「電話」をクリックしてフォームを送信したのに、結果のフォームデータが contact=on となるため有益ではありません。ですから、 value 属性を設定することを忘れないようにしてください。

メモ: フォームが送信されたときにラジオボタンが全く選択されていないと、ラジオグループが送信されたフォームにまったく含まれず、報告される値がなくなります。

実際には、フォームがグループ内のラジオボタンをまったく選択しない状態で送信するのを許可することは一般的ではないので、既定で一つを checked 状態を設定しておくことには意味があります。下記の既定のラジオボタンの選択を参照してください。

例に若干のコードを加えて、このフォームで生成されるデータを確認できるようにしましょう。 HTML を変更して、フォームデータを出力するための

 を追加します。

html

  
希望する連絡方法を選択してください。

それから、いくらかの JavaScript を追加して、ユーザーが「送信」ボタンをクリックしたときに発生する submit イベントのイベントリスナーを設定します。

js
const form = document.querySelector("form");
const log = document.querySelector("#log");

form.addEventListener(
  "submit",
  (event) => {
    const data = new FormData(form);
    let output = "";
    for (const entry of data) {
      output = `${output}${entry[0]}=${entry[1]}\r`;
    }
    log.innerText = output;
    event.preventDefault();
  },
  false,
);

この例を試してみて、 contact グループに二つ以上の結果が出ないことを確認してください。

追加の属性

すべての 型で共通する属性に加え、 radio 型の入力は次の属性にも対応しています。

  • checked

    • : 論理属性で、もしあれば、このラジオボタンがラジオグループ内で現在選択されているものであることを示します。

      Firefox は他のブラウザーとは異なり、既定でページ読み込みをまたがって のチェック状態を維持します。この機能を制御するには autocomplete 属性を使用してください。

  • value

value はすべての で共通のものの一つです。しかし、radio 型の入力欄では特別な目的になります。フォームが送信されるとき、現在チェックされているラジオボタンのみがサーバーに送信され、報告される値は value 属性の値になります。 value が指定されていない場合は、既定で on という文字列になります。これは以前に値の節で説明した通りです。

required

required 属性は、ほとんどの に共通する属性です。同じ名前のラジオボタンのグループのいずれかに required 属性がある場合、そのグループのラジオボタンのいずれかをチェックする必要がありますが、その属性が適用されているラジオボタンをチェックする必要があるわけではありません。

ラジオボタンの使用

上記で最も基本的なラジオボタンの使用方法を見てきました。他に必要になりそうなラジオボタンに関するよく使われる機能や技術を見てみましょう。

既定のラジオボタンの選択

ラジオボタンを既定で選択状態にするには、単に checked 属性を加えるだけです。前回の例を更新するとこのようになります。

html
希望する連絡方法を選択してください。

この場合、最初のラジオボタンは既定で選択されるようになります。

メモ: 複数のラジオボタンに checked 属性を指定した場合、後から指定したものが先に指定したものを上書きします。つまり、最後に checked されたラジオボタンが選択されることになります。これは、一度に選択できるラジオボタンはグループ内の 1 つだけであり、ユーザーエージェントは新しいラジオボタンがチェックされるたびに、他のラジオボタンの選択を自動的に解除するからです。

ラジオボタンのヒット領域を大きくする

上記の例では、ラジオボタンそのものだけでなく、関連する 要素をクリックすることで、ラジオボタンを選択できることにお気づきでしょうか。これは HTML フォームのラベルの実に便利な機能で、特にスマートフォンのような画面の小さな機器では、ユーザーが望む選択肢をクリックしやすくなります。

アクセシビリティを越えて、このこともフォームに 要素を適切に設定する良い理由です。

検証

required 属性が設定されたラジオボタンの場合、または同じ名前のラジオボタンのグループで、そのうちの 1 つ以上に required が設定されている場合、このコントロールが有効とみなされるにはラジオボタンが選択されている必要があります。どのラジオボタンもチェックされていない場合、バリデーション中に ValidityState オブジェクトの valueMissing プロパティが true を返し、ブラウザーがユーザーにオプションの選択を要求します。

ラジオボタンのスタイル設定

次の例は、この記事全体で見てきた例を少し詳しくしたもので、いくつかの追加のスタイル設定と、専門要素を使用することでより適切な意味づけがなされています。 HTML はこのようになっています。

html
希望する連絡方法を選択してください。

この例では、 CSS が絡んでいるのが少し特徴的です。

css
html {
  font-family: sans-serif;
}

div:first-of-type {
  display: flex;
  align-items: flex-start;
  margin-bottom: 5px;
}

label {
  margin-right: 15px;
  line-height: 32px;
}

input {
  appearance: none;

  border-radius: 50%;
  width: 16px;
  height: 16px;

  border: 2px solid #999;
  transition: 0.2s all linear;
  margin-right: 5px;

  position: relative;
  top: 4px;
}

input:checked {
  border: 6px solid black;
}

button,
legend {
  color: white;
  background-color: black;
  padding: 5px 10px;
  border-radius: 0;
  border: 0;
  font-size: 14px;
}

button:hover,
button:focus {
  color: #999;
}

button:active {
  background-color: white;
  color: black;
  outline: 1px solid black;
}

ここで最も注目すべきは、appearance プロパティ(一部のブラウザーで対応しているために必要な接頭辞付き)を使用している点です。既定で、ラジオボタン(とチェックボックス)は、それらのコントロールのためのオペレーティングシステムのネイティブスタイルでスタイル設定されています。 appearance: none を指定することで、ネイティブのスタイル設定を完全に削除し、自分自身でスタイルを作成することができます。ここでは、 border と border-radius と transition を使用して、ラジオ選択のアニメーションがあるように作成しています。また、 :checked 擬似クラスが、選択時のラジオボタンの外観のスタイルを指定するために使用されていることに注目してください。

メモ: もし appearance プロパティを使用したい場合は、とても慎重にテストする必要があります。このプロパティはほとんどの現代のブラウザーで対応していますが、その実装は大きく異なっています。古いブラウザーでは、キーワード none でさえ異なる形で同じ効果を持たず、まったく対応していないブラウザーもあります。最新のブラウザーでは、そのような違いは小さくなっています。

ラジオボタンをクリックすると、 2 つのボタンの状態が変わるときに、きれいで滑らかなフェードアウト/イン効果があることに注意してください。さらに、凡例と送信ボタンのスタイルと色は、強いコントラストを保有するようにカスタマイズされています。これは、実際のウェブアプリケーションで使用したい外観ではないかもしれませんが、その可能性を示していることは間違いありません。

技術的概要

値 ラジオボタンの値を表す文字列です。
イベント change および input
対応している共通属性 checked, value, required
IDL 属性 checked および value
DOM インターフェイス HTMLInputElement
メソッド select()
暗黙の ARIA ロール radio

仕様書

Specification
HTML
# radio-button-state-(type=radio)

ブラウザーの互換性

関連情報

  • およびそれが実装している HTMLInputElement インターフェイス
  • RadioNodeList: ラジオボタンのリストを表現するインターフェイス

Help improve MDN

Learn how to contribute.

This page was last modified on 2025年4月20日 by MDN contributors.

View this page on GitHub • Report a problem with this content
MDN logo

Your blueprint for a better internet.

  • MDN on Bluesky
  • MDN on Mastodon
  • MDN on X (formerly Twitter)
  • MDN on GitHub
  • MDN Blog RSS Feed

MDN

  • About
  • Blog
  • Careers
  • Advertise with us

Support

  • Product help
  • Report an issue

Our communities

  • MDN Community
  • MDN Forum
  • MDN Chat

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2025 by individual mozilla.org contributors. Content available under a Creative Commons license.