Antworten:
Es ist völlig in Ordnung.
Das form
wird übermittelt nur seinen Eingangstyp - Kontrollen (* auch Textarea
, Select
etc ...).
Sie haben nichts über eine kümmern div
innerhalb ein form
.
Es ist völlig akzeptabel, einen DIV in einem <form>
Tag zu verwenden.
Wenn Sie sich den Standard aussehen CSS 2.1 Stylesheet , div
und p
sind beide in der display: block
Kategorie. Wenn Sie sich dann die HTML 4.01-Spezifikation für das Formularelement ansehen, enthalten sie nicht nur <p>
Tags, sondern auch <table>
Tags, sodass natürlich <div>
dieselben Kriterien erfüllt werden. <legend>
Das Formular enthält auch ein Tag in der Dokumentation.
Das Folgende besteht beispielsweise die HTML4-Validierung im strengen Modus:
<!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>
Sie können ein <div>
innerhalb eines Formulars verwenden - es gibt dort kein Problem ... ABER wenn Sie das <div>
als Etikett für das Nicht verwenden input
möchten ... label
ist eine weitaus bessere Option:
<label for="myInput">My Label</label>
<input type="textbox" name="MyInput" value="" />
Es ist falsch, <input> als direktes Kind eines <form> zu haben
Übrigens kann <input / > bei einem Doctype fehlschlagen
Überprüfen Sie es mit http://validator.w3.org/check
Der Dokumenttyp erlaubt hier kein Element "INPUT". Es fehlt eines der Start-Tags "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADRESSE"
<input type = "text" />
Das erwähnte Element darf nicht in dem Kontext erscheinen, in dem Sie es platziert haben. Die anderen genannten Elemente sind die einzigen, die beide dort zulässig sind und das erwähnte Element enthalten können. Dies kann bedeuten, dass Sie ein enthaltendes Element benötigen oder möglicherweise vergessen haben, ein vorheriges Element zu schließen.
Eine mögliche Ursache für diese Meldung ist, dass Sie versucht haben, ein Element auf Blockebene (z. B. "<p>" oder "<table>") in ein Inline-Element (z. B. "<a>", "<span>" einzufügen "oder" <font> ").
Ihre Frage bezieht sich nicht auf das, was Sie in die DIV-Tags einfügen möchten, weshalb Sie wahrscheinlich einige unvollständige / falsche Antworten erhalten haben. Die Wahrheit ist, dass Sie, wie Royi sagte, DIV-Tags in Ihre Formulare einfügen können. Sie möchten dies beispielsweise nicht für Beschriftungen tun, aber wenn Sie ein Formular mit einer Reihe von Kontrollkästchen haben, die Sie in drei Spalten unterteilen möchten, verwenden Sie auf jeden Fall DIV-Tags (oder SPAN, HEADER usw. .) um das Erscheinungsbild zu erreichen, das Sie erreichen möchten.
Definition und Verwendung
Das Tag definiert eine Abteilung oder einen Abschnitt in einem HTML-Dokument.
Das Tag wird verwendet, um Blockelemente zu gruppieren, um sie mit Stilen zu formatieren. http://www.w3schools.com/tags/tag_div.asp
Auch DIV - MDN
Das HTML-Element (oder HTML Document Division Element) ist der generische Container für Flow-Inhalte, der von Natur aus nichts darstellt. Es kann verwendet werden, um Elemente für Stilzwecke (unter Verwendung der Klassen- oder ID-Attribute) zu gruppieren oder weil sie Attributwerte wie lang gemeinsam nutzen. Es sollte nur verwendet werden, wenn kein anderes semantisches Element (wie oder) geeignet ist.
Sie können div inside form verwenden. Wenn Sie über die Verwendung von div anstelle von table sprechen, googeln Sie über Tableless Web Design
Wie die anderen gesagt haben, ist alles gut, man kann es gut machen. Für mich persönlich versuche ich, mit meinen Elementen eine Form der hierarchischen Struktur beizubehalten, div
wobei das äußerste übergeordnete Element ist. Ich versuche nur table
p
ul
und span
innerhalb von Formularen zu verwenden. Erleichtert mir nur die Verfolgung der Eltern-Kind-Beziehungen auf meinen Webseiten.
Ich bemerkte, dass die nachfolgenden Div-Geschwister immer dann, wenn ich das Formular-Tag in einem Div startete, nicht Teil des Formulars waren, wenn ich es inspizierte (Chrome Inspect). Von nun an würde mein Formular niemals mehr gesendet.
<div>
<form>
<input name='1st input'/>
</div>
<div>
<input name='2nd input'/>
</div>
<input type='submit'/>
</form>
Ich dachte mir, dass es funktioniert, wenn ich das Formular-Tag außerhalb der DIVs platziere. Das Formular-Tag sollte am Anfang des übergeordneten DIV platziert werden. Wie unten gezeigt.
<form>
<div>
<input name='1st input'/>
</div>
<div>
<input name='2nd input'/>
</div>
<input type='submit'/>
</form>
Absolut nicht! Es wird gerendert, aber nicht validiert. Verwenden Sie ein Etikett.
Es ist nicht richtig. Es ist nicht zugänglich. Sie sehen es auf einigen Websites, weil einige Entwickler nur faul sind. Wenn ich Entwickler anheuere, ist dies eines der ersten Dinge, auf die ich bei der Arbeit von Kandidaten prüfe. Formen sind böse, aber nehmen Sie sich Zeit und lernen Sie, sie richtig zu machen
<div>
Tags werden immer missbraucht, um ein Weblayout zu erstellen. Sein symbolischer Zweck besteht darin, einen Abschnitt / Teil der Seite so zu unterteilen, dass ein separater Stil hinzugefügt oder darauf angewendet werden kann. [w3schools Doc] [W3C]
some
und another
haben.HTML5 hat mehr Tags mit logischer Bedeutung als einfache Layout-Tags. Die section
, header
, nav
, aside
hat alles , was ihre eigene semantische Bedeutung zu. Und werden dagegen eingesetzt<div>
<select>
passt perfekt, wenn die Auswahl gegeben ist, wenn nicht <a>
oder <buttons>
gut sind.