HTML5では、「input 要素」「button 要素」を「フォームタグ」の外で直接記述しても良い

HTMLHTML5

概要

 状態:-  閲覧数:4,837  投稿日:2015-03-21  更新日:2016-04-06
HTML5では、「input 要素」「button 要素」を「フォームタグ」の外で直接記述しても良い
・<button> … フォームの外で直接使用しても良い
・<input> … フォームの外で直接使用しても良い
・<form>内で、<button>クリックすると、submit指定していないのにフォーム送信される


より正確には


HTML5
・フォーム関連要素(<input><button><textarea>など)を、<form>外部に記述しても、そのフォームに所属しているものとして取扱可能
・フォーム関連要素 … <form>外部に記述しても良い

HTML 4.01
・フォーム関連要素(<input><button><textarea>など)を、<form>外部に記述すると、そのフォームに所属しているものとして取扱不可
・フォーム関連要素 … <form>外部に記述しても良い? → 未調査に付き不明

関連付けできないことと、<form>外部に記述しても良いか、は別次元の話
・しかし、HTML 4.01は今後使用することはないので、気にする必要はない
・大事なことは、HTML5では「フォーム関連要素を<form>外部に記述しても良い」という点

何が問題なの?

 閲覧数:459 投稿日:2015-03-21 更新日:2015-03-21

きっかけ


button要素を、<form>の外で使用したい
・「JS」処理や「デザイン」等の事由により、フォーム関連要素を<form>外部に記述したいケースは割と多い


事例


問題となるケース
・フォーム関連要素を<form>内部に記述すると、問題が発生するケース

例1
・ボタンクリックしたら、Ajax処理でフォーム要素に入力項目を付与したい
・<form>内部に<button>記述
・クリックした際、submitされて、リロードされてしまう
→ <button>クリック処理はしたいが、フォーム全体をsubmitはしたくない

例2
・<form>内部の<a>を目立たせるため、<button>にしたい
・<form>内部に<button>記述
・クリックした際、submitされて、リロードされてしまう
→ リンクなので、クリック処理はしたいが、フォーム全体をsubmitはしたくない


対応


button要素を、<form>外部で記述すれば良い
・上記事例の対応は、ここで終了


紐付け


・「フォーム関連要素を単に<form>外部に記述したいケース」についての対応は、以下のとおり

<form>外部に記述したフォーム関連要素を<form>と関連付けするためには、form属性を使用

 閲覧数:525 投稿日:2015-03-21 更新日:2015-03-21

form属性


「formタグ」とは異なる
・HTML5 で新たに定められた属性
・使用することで、<form>外部に記述したフォーム関連要素と、<form> 要素を紐付けることが可能


<button>要素


form属性


<input>要素


form属性


具体例


<form>外部で使用している<button>を関連付け
<button form = "test">ボタン</button>

<form id = "test">
 <input type="text" name="★★">
 <input type="submit" value="送信">>
</form>


<form>外部で使用している<fieldset>を関連付け
<fieldset form = "test">
名前:<input type="text" name="★★">
電話:<input type="tel" name="tel">
メール:<input type="email" name="email">
住所:<input type="text" name="address">
</fieldset>

<form id="test">
   <button type="submit">送信</button>
</form>


Link
form内のbuttonとform外のbuttonの違い
フォーム — HTML5 日本語訳


HTML5では、action属性を省略すると、送信先はそのHTMLファイル自身になる

HTML5で画像ファイル存在判定



類似度ページランキング
順位 ページタイトル抜粋
1 HTML5では、「input 要素」「button 要素」を「フォームタグ」の外で直接記述しても良い 76
2 HTML5では、inputタグの閉じタグを付与しない 50
3 HTMLで「1つのタグにidを複数指定」は出来ない! 37
4 探している「HTML5エディタ」 33
5 HTML5で、set_include_pathを用いると、先頭に謎の空白行ができる 33
6 「Create Link」代替拡張機能を探した結果は、「CopyTabTitleUrl」でした。 33
7 HTML5では、action属性を省略すると、送信先はそのHTMLファイル自身になる 33
8 「異なるキーフレームアニメーション名」に、「transformの異なる値」を記述できない 32
9 「Twitter Bootstrap」✕「フォーム」 32
10 「Twitter Bootstrap」のアイコンは、画像なので色を変更できない 31
11 HTML5では「ブロックレベル要素」「インライン要素」で分類しない 31
12 divタグがdisplay:block;とかしても、ブロック要素にならないときは、 31
13 タグの"submit"属性の見た目を、CSSで変更しようとしてハマる 31
14 CSS3-mediaqueries.jsは、@ importスタイルシートに記述した内容を反映しない 30
15 一つの要素に対して「id 属性値」を複数指定することは出来ない 30
16 「Twitter Bootstrap」2系のアイコンは、画像なので大きく出来ない 29
17 「直後が A 要素 でない B 要素」を指定するCSSセレクタは、「A:not(:has(+ B)) {}」 29
18 「隣接する直前要素」で「最初の要素以外」を指定するCSSセレクタは、囲う要素 直前要素:not(:first-child):has(+ 直後要素){} 29
19 ボタン候補2 / 「ボタン」エリア外で「テキスト」表示しても良いの? 29
20 デフォルトの「Google Chrome」ではURL欄にwwwが表示されないため、「Microsoft Edge」を使用する 29
2024/3/30 0:05 更新
週間人気ページランキング / 3-22 → 3-28
順位 ページタイトル抜粋 アクセス数
1 Design 0 42
2 LOCK: File currently in use. / マニフェストを読み込めませんでした 10
3 「line-height」効果を打ち消すスタイルシートは、「line-height:normal; 7
4 「z-index」効果を打ち消すスタイルシートは、「z-index:auto;」 6
4 16進数カラーコード / 2進数 6
4 navタグで定義している部分だけCSSが効かない【html5】 | HTML5(HTML) 6
5 HLS / HSL 4
5 HTML5でiframeスクロールバーを表示しない方法が不明 | HTML5(HTML) 4
6 「overflow」効果を打ち消すスタイルシートは、「overflow: auto;」 2
6 画像大きさ | 他サイト調査(HTML) 2
6 テーブル枠線がどうしても消えない時は「border-collapse: collapse;」 | Backgrounds and Borders Module(CSS) 2
6 Chromeデベロッパーツールで、スマホソースコードを確認したいが、USBデバッグ機能をどうしても有効にすることが出来ない | モバイルデザイン(デザイン) 2
7 Google Chrome を閉じた際にバックグラウンド アプリの処理を続行する / ハードウェア アクセラレーションが使用可能な場合は使用する 1
7 Chromeで名前を付けて保存する際、ファイルを一つにする方法 1
7 ログイン 1
7 「font-size」効果を打ち消すスタイルシートは、「font-size:100%;」? 1
7 イラスト素材 | デザイン 1
7 RGB → 色相H … 最小値基準 × 図形 の考え方 | 色変換(色) 1
7 36ビットカラー 1
7 RGBの種類 / ビットカラー | RGB(色) 1
2024/3/29 1:01 更新