web-dev-qa-db-ja.com

FORM内でDIVを使用するのは正しいですか?

FORMタグ内のDIVタグについて何を考えているのでしょうか?

次のようなものが必要です。

<form>
  <input type="text"/>
  <div> some </div>
  <div> another </div>
  <input type="text" />
</form>

DIVFORMの内部で使用するのは一般的な習慣ですか、それとも別のものが必要ですか?

78
demas

まったく問題ありません。

formは、その入力タイプコントロール(* TextareaSelectなど)のみを送信します。

div内のformについて心配する必要はありません。

117
Royi Namir

<form>タグ内でDIVを使用することは完全に受け入れられます。

デフォルトの CSS 2.1スタイルシート を見ると、divpは両方ともdisplay: blockカテゴリーにあります。次に、フォーム要素のHTML 4.01仕様を見ると、<p>タグだけでなく<table>タグが含まれているため、もちろん<div>は同じ基準を満たします。ドキュメントのフォーム内には<legend>タグもあります。

たとえば、以下は厳格モードでHTML4検証に合格します。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test</title>
</head>
<body>
<form id="test" action="test.php">
<div>
  Test: <input name="blah" value="test" type="text">
</div>
</form>
</body>
</html>
24
Alex W

フォーム内で<div>を使用できます-問題ありません.... BUTinputのラベルとして<div>を使用する場合dont ... labelははるかに優れたオプションです。

<label for="myInput">My Label</label> 
<input type="textbox" name="MyInput" value="" />
7
ManseUK

定義と使用法

タグは、HTMLドキュメントの部門またはセクションを定義します。

タグは、ブロック要素をグループ化してスタイルでフォーマットするために使用されます。 http://www.w3schools.com/tags/tag_div.asp

また、 DIV-MDN

HTML要素(またはHTML Document Division Element)は、フローコンテンツの一般的なコンテナであり、本質的には何も表しません。スタイリングの目的で(クラスまたはid属性を使用して)要素をグループ化するために、またはlangなどの属性値を共有するために使用できます。他のセマンティック要素(またはなど)が適切でない場合にのみ使用してください。

テーブルの代わりにdivを使用することについて話している場合は、フォーム内でdivを使用できます。

2
Habib

あなたの質問はあなたがDIVタグに何を入れたいかを扱っていないので、おそらくあなたはいくつかの不完全/間違った答えを受け取ったのでしょう。真実は、Royiが言ったように、フォーム内にDIVタグを配置できるということです。たとえば、ラベルに対してこれを行いたくありませんが、3つの列にレイアウトするチェックボックスが多数あるフォームがある場合は、必ずDIVタグ(またはSPAN、HEADERなど)を使用してください。)達成しようとしているルックアンドフィールを達成するため。

2
Clinton

<input>を<form>の直接の子として持つのは間違っています

ちなみに<input/>はあるdoctypeで失敗するかもしれません

http://validator.w3.org/check で確認してください


ドキュメントタイプでは、ここで要素「INPUT」を使用できません。 「P」、「H1」、「H2」、「H3」、「H4」、「H5」、「H6」、「PRE」、「DIV」、「ADDRESS」開始タグのいずれかが欠落している

<input type = "text" />

上記の要素は、配置したコンテキストに表示することはできません。他の言及された要素は、そこで許可され、言及された要素を含むことができる唯一の要素です。これは、含んでいる要素が必要なことを意味している可能性があります。または、前の要素を閉じるのを忘れている可能性があります。

このメッセージの考えられる原因の1つは、インライン要素(「<a>」、「<span>など」)内にブロックレベル要素(「<p>」や「<table>」など)を配置しようとしたことです。 "、または" <font> ")。

2
stefan bachert

他の人が言ったように、それはすべて良いです、あなたはそれをうまくやることができます。個人的には、divが最も外側の親要素である要素を使用して、階層構造の形式を維持しようとします。フォーム内でtablepulspanのみを使用しようとしています。 myウェブページ内の親/子関係を追跡するのが簡単になります。

0
JT Smith