この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:6
ページ更新者:atom
更新日時:2026-06-11 07:10:02

タイトル: button要素
SEOタイトル: HTML button要素 完全ガイド(type=submit / reset / button / form 属性 / disabled / アクセシビリティ)

この記事の要点
  • typesubmit(フォーム送信)/ reset(フォームリセット)/ button(汎用)の 3 種
  • type を省略すると submit 扱い。フォーム内でうっかり送信される事故の原因に
  • とは別物。
  • disabled / form / formaction / formmethod 等で送信先や挙動を細かく制御可能

button 要素とは

type 属性の値

type の値動作用途
submit(既定)所属する
を送信する
ログイン / 登録ボタン
reset所属する の入力値を初期化入力クリア
button何もしない。JS から onclick 等で動かすモーダルを開く / 計算を実行 等

type を省略すると submit になります。フォーム内に「ただのボタン」を置きたいときに type="button" を書き忘れると、エンターキーや誤クリックで意図せずフォームが送信されるバグを生みます。

主な属性一覧

属性意味
typesubmit / reset / button
name送信時のパラメータ名。同じフォームに複数の送信ボタンを置く場合の判定にも
value送信時のパラメータ値
disabledボタンを無効化(クリック不可・送信されない)
autofocusページ読み込み時に自動でフォーカス
form所属する の id を指定。フォーム外のボタンを紐付けできる
formaction を上書きする送信先
formmethod を上書き(get / post
formnovalidateこのボタンで送信するときは HTML5 バリデーションをスキップ
formtarget送信結果の表示先(_blank 等)

button と input type=button の違い

項目
中身に HTML を入れられるか○(画像・アイコン・改行も可)×(value 属性のテキストのみ)
閉じタグ必要不要(空要素)
送信時の値value 属性で指定value 属性で指定
推奨度現代では基本こちら古典的な書き方

同一フォームで複数の送信ボタンを使い分ける

同じフォームで「保存」「下書き保存」「削除」を 1 つのフォームに置きたい場合、namevalue、または formaction で振り分けます。


  

  
  
  

  
  

disabled の使いどころ



二重送信防止のため、送信ボタンをサブミット直後に disabled にするのは定番のテクニックです。

アクセシビリティ

  • 視覚的にボタンに見えるなら
  • aria-label — アイコンだけのボタンには必ず付ける(例:
  • フォーカスリングを CSS で消す場合は代替のフォーカス表示を必ず用意する

よくあるハマりどころ

  • type 未指定で submit になる — フォーム内の「ただのボタン」には必ず type="button" を付ける
  • フォーム外のボタンが効かないform="myForm" 属性で紐付けると、レイアウト上フォームの外でも送信できる
  • onClick で e.preventDefault() し忘れ — submit ボタンでページ遷移してしまう
  • type=button で submit を想定したコード — 逆のパターン。送信したいのに何も起きない
  • 同じフォームに同名の type=submit が複数 — どれが押されたかを name + value で判定する

スタイリングのコツ

ブラウザ既定の のように要素内に画像を入れられます。 でも実現できますが、