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

HTMLHTML5

概要

 状態:-  閲覧数:2,847  投稿日: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>外部に記述しても良い」という点

何が問題なの?

 閲覧数:241 投稿日: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属性を使用

 閲覧数:310 投稿日: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タグの閉じタグを付与しない 50
2 HTMLで「1つのタグにidを複数指定」は出来ない! 37
3 探している「HTML5エディタ」 33
4 HTML5で、set_include_pathを用いると、先頭に謎の空白行ができる 33
5 HTML5では、action属性を省略すると、送信先はそのHTMLファイル自身になる 33
6 「異なるキーフレームアニメーション名」に、「transformの異なる値」を記述できない 32
7 「Twitter Bootstrap」✕「フォーム」 32
8 「Twitter Bootstrap」のアイコンは、画像なので色を変更できない 31
9 HTML5では「ブロックレベル要素」「インライン要素」で分類しない 31
10 divタグがdisplay:block;とかしても、ブロック要素にならないときは、 31
11 タグの"submit"属性の見た目を、CSSで変更しようとしてハマる 31
12 CSS3-mediaqueries.jsは、@ importスタイルシートに記述した内容を反映しない 30
13 一つの要素に対して「id 属性値」を複数指定することは出来ない 30
14 「Twitter Bootstrap」2系のアイコンは、画像なので大きく出来ない 29
15 デフォルトの「Google Chrome」ではURL欄にwwwが表示されないため、「Microsoft Edge」を使用する 29
16 ボタン候補2 / 「ボタン」エリア外で「テキスト」表示しても良いの? 29
17 「position:absolute;」指定する際は、必ず(親要素を含む)祖先要素の何れかで「position」を明示的に指定 28
18 指定兄弟要素(h1~h5タグ何れか)のmarginを取得して、指定要素に適用させたい 28
19 positionプロパティのrelative指定は、デフォルトではない 28
20 「:after擬似要素」は、Chromeの「要素を検証」で確認できない 28
2021/8/02 9:16 更新
週間人気ページランキング / 7-26 → 8-1
順位 ページタイトル抜粋 アクセス数
1 画面キャプチャ | Chrome 拡張機能(ブラウザ) 51
2 RGB ⇔ Lab | 色変換(色) 46
3 血の色 / #b30000 / #360800 / #ff0000 | 色 31
4 「マウスオーバー」「ロールオーバー」「ホバー」の違い | CSS 25
5 RGBの種類 / ビットカラー | RGB(色) 24
6 Windows10で「Google Chrome」が常に最前面に表示される。「アクティブウィンドウ」が最前面で表示されない → 解決方法存在しない | Google Chrome(ブラウザ) 23
7 「属性」「プロパティ」「アトリビュート」の違い | CSS 21
8 Design 0 20
9 「bgcolor」「background-color」「background」の違い | CSS 15
10 コズミックブルーが何色か分からない | 色 12
10 「overflow」効果を打ち消すスタイルシートは、「overflow: auto;」 12
11 使用していないCSSをチェックする、標準的な方法を知りたい | CSS 11
11 HSLとHSVの違い | 色変換(色) 11
12 ページ内リンクの位置を微調整するためには、Negative margin を使用する | CSS 10
13 キャラクター無料着せ替えジェネレーター Rinmaru Games / オンラインサービス | イラスト素材(デザイン) 9
13 「Bootstrapデザイン」✕「グラフ」 | 2系(Bootstrap) 9
13 アドベンチャーゲーム系の素材をどうやって用意するの? | イラスト素材(デザイン) 9
13 キャラクター無料作成ジェネレーター / FLASH / オンラインサービス | イラスト参考(デザイン) 9
13 「:hover」「z-index」を組み合わせて使用すると、正常動作しないことがある | z-index(CSS) 9
14 黒体 / 色温度 / D65(6500K)/ D50(5000K)/ K | 色 8
2021/8/2 1:01 更新