HTMLでは、文字を入力する欄だけでなく、「送信」や「リセット」などのボタンも作ることができます。ボタンはbutton要素で作ることもできますが、ここではまず、input要素での作り方をみてみましょう。
この記事ではHTML初心者の方に向けて、input要素で作るボタンの基本、主な属性、submit・reset・button の使い分けを、サンプルコード付きでやさしく解説します。
HTML 【フォーム】1 ~ フォームの概要とform要素の属性一覧
HTML 【フォーム】2 ~ form要素の使い方
HTML 【フォーム】3 ~ form要素で使う主な属性の使い方
HTML 【フォーム】4 ~ fieldset要素とlegend要素
HTML 【フォーム】5 ~ input要素(1)フォーム部品一覧
HTML 【フォーム】5 ~ input要素(2)テキスト入力部品
HTML 【フォーム】5 ~ input要素(3)ラジオボタンとチェックボックス
HTML 【フォーム】5 ~ input要素(4)日時の入力部品
HTML 【フォーム】5 ~ input要素(5)数値の入力部品
HTML 【フォーム】5 ~ input要素(6)レンジ(range)の入力部品
HTML 【フォーム】5 ~ input要素(7)色(color)の入力部品
HTML 【フォーム】5 ~ input要素(8)ファイル送信のための部品
HTML 【フォーム】5 ~ input要素(9)隠し情報(hidden)
HTML 【フォーム】5 ~ input要素(10)ボタン(submit、reset、button)( 本ページ )
HTML 【フォーム】5 ~ input要素(11)画像ボタン(image)
HTML 【フォーム】6 ~ button要素で作るボタン
HTML 【フォーム】7 ~ ボタンの作り方比較とJavaScriptでアラート表示
HTML 【フォーム】8 ~ セレクトリスト
HTML 【フォーム】9 ~ 入力候補(datalist)
HTML 【フォーム】10 ~ テキストエリア(textarea)
HTML 【フォーム】11 ~ ラベル(label)
HTML 【フォーム】12 ~ 出力欄(output)
HTML 【フォーム】13 ~ 数量や割合のゲージ(meter)
HTML 【フォーム】14 ~ 進捗状況を示すプログレスバー(progress)
HTML 【フォーム】15 ~ キーを発行して暗号化(keygen)
HTML 【フォーム】16 ~ CSSでフォームを整える
なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。
最終更新日:2026年7月10日
目次
<input>要素の「type属性」を以下のように指定することで、様々なボタンを作ることができます。※<input type=”xxxxx”>の形で記述
type属性の値と、作られる部品の種類は次の通りです。
| type属性の値 | 部品の種類 | |
|---|---|---|
| input要素で作る ボタンの部品 |
type = ”submit” | データを送信するためのボタン |
| type = ”reset” | 入力データをリセットするためのボタン | |
| type = ”button” | 用途に応じた自由なボタン |
ボタン部品も、type属性以外の属性を使うと、さらに機能を追加することができます。
| autofocus属性 | HTML文書のロード後すぐに、ボタンが選択された状態にする |
|---|---|
| form属性 | form要素の外にボタンを配置して、特定のフォームに関連付けることができる |
| disabled属性 | 使用不可の状態にする(ボタンを押せない状態にする) |
| formaction属性 (type=”submit”の場合のみ) |
form要素のaction属性を上書きして、送信先をボタンごとに変えることができる |
| formmethod属性 (type=”submit”の場合のみ) |
form要素のmethod属性を上書きして、送信方法をボタンごとに変えることができる |
| formenctype属性 (type=”submit”の場合のみ) |
form要素のenctype属性を上書きする |
| formtarget属性 (type=”submit”の場合のみ) |
form要素のtarget属性を上書きする |
| formnovalidate属性 (type=”submit”の場合のみ) |
form要素でnovalidate属性を指定していない場合(バリデート有)に、送信ボタンでバリデート無しの状態にする (フォームに入力チェックがあるときに、その送信ボタンだけ入力チェックなしで送信する) |
■ <input type=”submit”>で送信ボタンを作成すると、ブラウザで次のように表示されます。
上の表示に対するhtmlコードは、以下の通りです。
<input type="submit">
submit は、フォームの内容を送信するためのボタンです。単独で使う場合は、name属性を指定しなくても動作します。
value属性を使うと、ボタンに表示するテキストを指定できます。
上の表示に対するhtmlコードは、以下の通りです。
<input type="submit" value="ここを押すとデータが送信されます!">
■ formnovalidate属性を指定しない場合は、必須入力項目に対してバリデート(入力チェック)が働き、「このフィールドを入力してください」などのメッセージ が表示されます。
上の表示に対するhtmlコードは、以下の通りです。
<form>
ID:<input type="text" name="id" required>
<input type="submit">
</form>
このコード例では、input type=”text” で作成した入力欄に required属性が指定されているため、必須入力項目になっています。
form要素にも input type=”submit” にも novalidate属性を指定していないので、ブラウザ標準の入力チェックが有効になっており、何も入力せずに送信ボタンを押すと、入力をうながすメッセージが表示されます。
type=”reset”で作成されるリセットボタンは、フォームの入力内容を全てリセットする(初期状態に戻す)機能を持っています。
ユーザーが入力してくれた情報が一瞬にして消去されてしまうということを念頭に置いて、慎重に作成する必要があります。
<input type=”reset”>でリセットボタンを作成すると、ブラウザでは次のように表示されます。
上の表示に対するhtmlコードは、以下の通りです。
<input type="reset">
submitと同様に、value属性で表示用のテキストを指定できます。
下の記入欄に文字を入力して、リセットボタンを押すと、入力内容が削除されます。
上の表示に対するhtmlコードは、以下の通りです。
<form>
<input type="text" name="test" placeholder="文字入力→リセット">
<input type="reset">
</form>
現在のWebサイトでは、誤操作による入力内容の消失を防ぐため、リセットボタンを設置しないケースも多くなっています。
データを送信する場合や、入力内容をリセットする場合以外にも、ボタンに特定の機能を持たせたいことがあります。たとえば、次のページへ移動したり、メッセージを表示したりするときです。
そのようなときに、type=”button” を使います。type=”button”でボタンを作成する場合には、submit(送信)やreset(リセット)のようにデフォルトでボタンにテキストが表示されないので、value属性で表示用のテキストを指定します。
上の表示に対するhtmlコードは、以下の通りです。
<input type="button" value="あいさつを表示する">
上のソースだけでは、ボタンを押しても何も起こりません。ボタンに機能を持たせるには、JavaScriptなどを使って、押したときの処理を書く必要があります。
下のボタンを押してみて下さい。
上のボタンに対するhtmlコードは、以下の通りです。
<input type="button" value="あいさつを表示する" id="show-message">
<p id="message"></p>
<script>
const showMessageButton = document.getElementById('show-message');
const message = document.getElementById('message');
showMessageButton.addEventListener('click', () => {
message.textContent = 'こんにちは!';
});
</script>
この例では、ボタンを押すと、下に「こんにちは!」と表示されます。
addEventListener(‘click’, …) は、「クリックされたときにこの処理を実行してください」という意味です。
textContent は「要素の中の文字」を意味しており、今回はボタンクリック時にその内容を’こんにちは!’に書き換えています。
以前は、以下のような「 onclick属性の中へ直接JavaScriptを書く方法」も、よく使われていました。
<input type="button" value="あいさつを表示する"
onclick="document.getElementById('message').textContent='こんにちは!'">
<p id="message"></p>
この書き方でも同様に動作はしますが、現在は管理上・セキュリティ上などの理由で、HTMLとJavaScriptを分けて書ける addEventListener() を使う書き方が推奨されています。
いずれにしろ、ボタンはこのようにJavaScriptと組み合わせて使われることが多いです。
【A】文字を入力する欄や、送信ボタン・リセットボタンなどのフォーム部品を作るために使います。
【A】input要素で作る部品の種類を指定する属性です。
【A】どちらもボタンを作れますが、より自由に中身を書きたい場合は button要素がよく使われます。
大きな違いは「中身に何を入れられるか」です。input要素のボタンはvalue属性で指定した文字列しか表示できませんが、button要素はタグの中にアイコンや画像、装飾用のHTMLなどを自由に入れることができます。
現在のWeb開発では、柔軟なデザインに対応でき、また「ボタンであること」がより明確に伝わるbutton要素を使用する場面が増えています。
HTML の input要素について、いかがでしたでしょうか。
「HTMLから始めていつかプログラマーになりたいけど、独力では限界がある!」と感じている方には、「プログラマカレッジ」もおすすめです。
プログラマカレッジは、本気でプログラマーを目指す方のための就職支援付き、受講料無料のプログラミングスクールです。今回ご紹介したHTMLを含む豊富なカリキュラムで、IT初心者からプログラマーとして就職するまで、プロが完全にサポートします。
本気でプログラマーとして就職・転職したいという方は、ぜひ一度のぞいてみて下さいね。
→ 就職支援付き無料プログラミングスクール「プログラマカレッジ」
INTERNOUS,inc. All rights reserved.