<button>要素の使い方・サンプルコード
<button>
<button>要素は、ボタンを作成することができます。
type 属性の値によって
- 汎用的なボタン
- フォームの送信ボタン
- フォームのリセットボタン
を作成することができます。
属性
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>
実行結果
対応ブラウザ
関連するタグ
- <input type=”button”>:ボタンを作成