ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
結論: type="button" を明示する
<form> の内側にある <button> は、type を省略すると submit 扱いになります。クリックや Enter キーで意図せずフォームが送信され、ページがリロードされたり API が叩かれたりします。これを防ぐ最も簡単な方法は、ボタン側に type="button" を書くことです。
<form action="/save" method="post">
<input type="text" name="title">
<!-- 送信しない補助ボタン -->
<button type="button" onclick="addRow()">行を追加</button>
<!-- 送信ボタン -->
<button type="submit">保存</button>
</form>
button 要素の type 一覧
| type | 動作 |
|---|---|
submit(既定) | 所属する form を送信 |
button | 何もしない(JS から制御) |
reset | form を初期値に戻す |
JavaScript で止める
既存コードで type を書き換えられない、または条件によって送信したいときは preventDefault() を使います。
// クリック時に止める
document.querySelector('#myBtn').addEventListener('click', e => {
e.preventDefault(); // submit 動作キャンセル
// ここで自前処理
doSomething();
});
// onclick 属性内なら return false でも止まる(古典)
// <button onclick="doSomething(); return false;">押す</button>
Enter キー暗黙送信を止める
type="button" でも、フォーム内のテキスト入力でEnter キーを押すと、フォーム内で最初に見つかった type="submit" ボタン(もしくはデフォルト挙動)で送信されます。送信を全面禁止したい場合は、form の submit イベント自体を止めます。
const form = document.querySelector('#searchForm');
form.addEventListener('submit', e => {
e.preventDefault(); // どんな経路でも送信させない
// ここで Ajax / 自前処理
fetchResults(form.elements.q.value);
});
あるいはテキスト入力の Enter キーを個別に止める方法もあります。
input.addEventListener('keydown', e => {
if (e.key === 'Enter') {
e.preventDefault();
}
});
form の外にボタンを出す / 関連付け替え
レイアウト上どうしても form の中に置きたいが、送信対象にしたくないケースでは、HTML5 の form 属性で所属を切り替えることもできます。
<!-- 別 form と関連付け -->
<form id="formA" action="/a"></form>
<form id="formB" action="/b"></form>
<!-- 物理的には formA の中だが、押すと formB が送信される -->
<form id="formA">
<input name="x">
<button type="submit" form="formB">B を送る</button>
</form>
2 つ以上の送信ボタンを使い分ける
「下書き保存」「公開」のように同じ form で複数の送信先を持ちたいときは、formaction / formmethod 属性で個別に上書きできます。
<form action="/save" method="post">
<input name="title">
<button type="submit">保存</button>
<button type="submit" formaction="/publish">公開</button>
<button type="button" onclick="preview()">プレビュー</button>
</form>
アクセシビリティ上の補足
「クリックできる装飾」を作りたいときに <div onclick> や <span> を使うのは避け、<button type="button"> を選んでください。Tab フォーカス、Space / Enter での起動、スクリーンリーダの「ボタン」アナウンスがすべて標準で備わります。CSS で見た目を調整すればよいだけです。
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- 環境構築
- 文法
- 要素一覧
- API
- テンプレートエンジン
- <head>タグに書いた内容が<body>タグに移動する場合の解決方法
- 空白(スペース)の入力方法
- テキスト/セレクトボックス/ラジオボタン変更時のJS関数呼び出し
- buttonでformをsubmitさせない方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?