リファレンス

【2020年版】<button>要素の使い方・サンプルコード

<button> 要素は、ボタンを作成することができます。

type 属性の値によって

  • 汎用的なボタン
  • フォームの送信ボタン
  • フォームのリセットボタン

を作成することができます。
 

デモ:<button> 要素

 
 

属性

<button 属性名="ここに値を指定"></button>
 

autofocus

ページの読み込みが完了したときに、この属性を持った button 要素にフォーカスします。論理属性です。

フォーム内の一つの要素だけに指定できます。
 

HTMLコード
<button type="button">通常のボタン</button>
<button type="button" autofocus>Autofocusボタン</button>
実行結果


 

disabled

ユーザーがボタン要素を押すことができないようにします。論理属性です。

disabled を指定すると、通常ボタンの色が薄くなります。
 

HTMLコード
<button type="button">通常のボタン</button>
<button type="button" disabled>Disabledボタン</button>
実行結果


 

form

関連付けたい form 要素の id を指定します。この属性を指定しない場合は、親要素に form 要素が存在すれば、その form 要素に関連付けられます。

form 属性を指定することで、form 要素の子要素に button 要素を置かなくても、同じ HTML 文書中にあるフォームに button 要素を関連付けることができます。
 

以下のサンプルでは、1 行目の button 要素をフォーム送信ボタンとして使うことができます。

<button type="submit" form="myForm">送信</button>

<form method="get" id="myForm">
  <div>
    <label for="user_name">お名前:</label>
    <input id="user_name" type="text" name="name" placeholder="お名前を入力" autofocus>
  </div>
</form>

 
 

formaction

ボタンの type 属性を submit として、このボタンをフォーム送信ボタンとして使う場合の送信先 URL を指定します。

このボタンが属する form 要素の action 属性に指定した URL に上書きされます。
 

以下のサンプルでは「送信」ボタンを押すと sample.php ではなく sample2.php にデータが送信されます。

<form method="get" action="sample.php">
  <div>
    <label for="user_name">お名前:</label>
    <input id="user_name" type="text" name="name" placeholder="お名前を入力">
  </div>
  <button type="submit" formaction="sample2.php">送信</button>  
</form>

 
 

formenctype

ボタンの type 属性を submit として、このボタンをフォーム送信ボタンとして使う場合に、送信するデータの MIME タイプを指定します。

このボタンが属する form 要素の enctype 属性に指定した値に上書きされます。
 

application/x-www-form-urlencoded(初期値)URL エンコードしてデータを送信します。
multipart/form-data<input> 属性で file を指定した要素がある場合に使用します。
text/plainテキストとしてデータを送信します。(主にデバッグ目的で使用)

 
 

formmethod

ボタンの type 属性を submit として、このボタンをフォーム送信ボタンとして使う場合に、データを送信する方法を指定します。

このボタンが属する form 要素の method 属性に指定した値に上書きされます。
 

postフォームのデータをボディに収めてサーバーに送信します。
get? をセパレーターとして、クエリ文字列としてデータを送信します。
例)https://sample.com?id=123&name=yamada

 

以下のサンプルでは get メソッドでフォームが送信されます。

<form method="post" action="sample.php">
  <div>
    <label for="user_name">お名前:</label>
    <input id="user_name" type="text" name="name" placeholder="お名前を入力">
  </div>
  <button type="submit" formmethod="get">送信</button>  
</form>

 
 

formnovalidate

ボタンの type 属性を submit として、このボタンをフォーム送信ボタンとして使う場合に、データを検証しないことを指定します。論理属性です。

このボタンが属する form 要素の novalidate 属性に指定した値に上書きされます。
 
 

formtarget

ボタンの type 属性を submit として、このボタンをフォーム送信ボタンとして使う場合に、データを送信した後に表示する画面の表示方法を指定します。

このボタンが属する form 要素の target 属性に指定した値に上書きされます。
 

属性値
_self(既定値)表示中のページと同じウィンドウにリンク先のページを表示します。
_blank新しいタブ・ウィンドウでリンクを開きます。
_parent 現在閲覧中のタブ・ウィンドウの親コンテキストにリンク先のページを読み込みます。親がない場合は _self と同じ動きをします。
_topトップレベル(親を持たない)の閲覧コンテキストにリンク先のページを読み込みます。親がない場合は _self と同じ動きをします。

 
 

name

value 属性の値とセットでフォームのデータとして送信されます。
どのボタンが押されたのか特定する時などに使うことができます。
 

以下のサンプルでは http://localhost/sample.php?name=山田&btn=12345 のように値が送信されます。

<form method="get" action="sample.php">
  <div>
    <label for="user_name">お名前:</label>
    <input id="user_name" type="text" name="name" placeholder="お名前を入力">
  </div>
  <button type="submit" name="btn" value="12345">送信</button>  
</form>

 
 

type

ボタンを押したときの動作を指定します。

button押されても何も動作しないボタンです。JavaScript などでボタンが押されたときの処理を付けることができます。
resetフォームに入力されたデータをリセットします。
submit(既定値)フォームに入力されたデータを送信するボタンになります。

 
 

value

name 属性の値とセットで value 属性の値をフォームのデータとして送信することができます。
どのボタンが押されたのか特定する時などに使うことができます。
 

以下のサンプルでは http://localhost/sample.php?name=山田&btn=12345 のように値が送信されます。

<form method="get" action="sample.php">
  <div>
    <label for="user_name">お名前:</label>
    <input id="user_name" type="text" name="name" placeholder="お名前を入力">
  </div>
  <button type="submit" name="btn" value="12345">送信</button>  
</form>

 
 

グローバル属性

全ての HTML に共通して使用できるグローバル属性はこちら
 
 

使用例

例① フォームの送信ボタン・リセットボタンを作成

HTMLコード
<form method="post" action="sample.php">
  <div>
    <label for="user_name">お名前:</label>
    <input id="user_name" type="text" name="name" placeholder="お名前を入力">
  </div>
  <div>
    <label for="user_tel">電話番号:</label>
    <input id="user_tel" type="tel" name="tel" placeholder="電話番号を入力">
  </div>
  <button type="reset">入力項目をリセット</button> 
  <button type="submit">送信</button>
</form>
実行結果


 
 

例② 画像を使ったボタンを作成

HTMLコード
<button type="submit"></button>

<style>
button {
  width: 120px;
  height: 36px;
  border: none;
  background: #fff url(btn.png) no-repeat center/cover;
}
</style>
実行結果


 
 

対応ブラウザ

 
 

関連するタグ

 

HTML タグ一覧はこちら
 

ABOUT ME
Sara
Sara
「わかりやすく・シンプル」をモットーに、携帯アプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
独学は難しそうと感じたら

 
独学でプログラミングを勉強するのは難しそう、効率的にプログラミングを学びたいという方はオンラインスクールがオススメです。

オンラインスクールを選ぶときのポイント

  • 無料体験があること
  • 個別サポートがあること

自分にあったスタイルを見つけるために、無料体験のご利用をオススメします。(無料体験後に自分には合わないなと感じたらハッキリ断ってしまって問題ありません。)
 
個別サポートもプログラミング学習に挫折しないために重要なポイントです。エラーや困った時にすぐに個別対応をしてくれるスクールを利用して下さい。

ここでは3つのオンラインスクールを紹介します。
全て無料体験がありますので、ぜひ自分に合ったスクールを見つけてみて下さい????
 

1. TechAcademy(テックアカデミー)

オンライン完結で勉強できるスクールで、コースがとても充実しています。チャットで質問すればすぐに回答を得られるのが一番のおすすめポイントです。
オリジナルのサービスやアプリの開発もサポートしてくれるので、開発したいものが決まっている人にもオススメです。

無料体験はこちら

2. CodeCamp(コードキャンプ)

一対一で受講できる個別指導のプログラミングスクールです。
Webデザイン・Webサービス開発・アプリ開発などを幅広く学習することができます。
マンツーマンなので自分のペースで学習できて、質問もその都度できるのがメリットです。

無料体験レッスンはこちら

3. Treehouse

英語でも良い、英語とプログラミングを同時に勉強したいという方は Treehouse がオススメです。月25ドルで始めることができて、たくさんのプログラミング言語を学ぶことができます。
個別サポートはありませんが、掲示板が充実しています。ほとんどの場合、質問してから30分程度で回答を得ることができます。

7日間の無料体験はこちら

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA