web-dev-qa-db-fra.com

Est-il correct d'utiliser DIV dans FORM?

Je me demande simplement ce que vous pensez de DIV-tag dans FORM-tag?

J'ai besoin de quelque chose comme ça:

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

Est-il courant d'utiliser DIV à l'intérieur de FORM ou ai-je besoin de quelque chose de différent?

78
demas

C'est totalement bien.

La form ne soumettra que ses contrôles de type d’entrée (* également Textarea, Select, etc ...).

Vous n'avez rien à craindre d'un div dans un form.

117
Royi Namir

Il est tout à fait acceptable d'utiliser un DIV dans un <form>tiquette.

Si vous regardez la valeur par défaut feuille de style CSS 2.1 , div et p sont tous deux dans le display: block Catégorie. Ensuite, en regardant la spécification HTML 4.01 pour l'élément de formulaire, ils incluent non seulement <p> balises, mais <table> balises, donc bien sûr <div> répondrait aux mêmes critères. Il y a aussi <legend> balise à l'intérieur du formulaire dans la documentation.

Par exemple, ce qui suit passe la validation HTML4 en mode strict:

<!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

Vous pouvez utiliser un <div> dans un formulaire - il n'y a pas de problème là-bas .... MAIS si vous allez utiliser le <div> comme étiquette pour le input ne pas ... label est une bien meilleure option:

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

Définition et utilisation

La balise définit une division ou une section dans un document HTML.

La balise est utilisée pour regrouper des éléments de bloc afin de les formater avec des styles. http://www.w3schools.com/tags/tag_div.asp

Aussi DIV - MDN

L'élément HTML (ou HTML Document Division Element) est le conteneur générique du contenu du flux, qui ne représente rien de manière inhérente. Il peut être utilisé pour regrouper des éléments à des fins de style (en utilisant les attributs class ou id) ou parce qu'ils partagent des valeurs d'attribut, telles que lang. Il ne devrait être utilisé que si aucun autre élément sémantique (tel que ou) n'est approprié.

Vous pouvez utiliser div inside form, si vous parlez d’utiliser div au lieu de table, puis google à propos de la conception Web sans tableaux.

2
Habib

Votre question ne traite pas de ce que vous voulez mettre dans les balises DIV, ce qui explique probablement pourquoi vous avez reçu des réponses incomplètes/erronées. La vérité est que vous pouvez, comme l'a dit Royi, insérer des balises DIV dans vos formulaires. Vous ne voulez pas faire cela pour les étiquettes, par exemple, mais si vous avez un formulaire avec un tas de cases à cocher que vous voulez mettre en trois colonnes, utilisez bien sûr les balises DIV (ou SPAN, HEADER, etc. .) pour obtenir l'apparence que vous essayez d'atteindre.

2
Clinton

Il est faux d’avoir <input> comme enfant direct d’un <form>

Et au fait, <input /> peut échouer sur certains doctype

Vérifiez-le avec http://validator.w3.org/check


le type de document n'autorise pas l'élément "INPUT" ici; il manque l'un des balises de départ "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS"

<type d'entrée = "texte" />

L'élément mentionné n'est pas autorisé à apparaître dans le contexte dans lequel vous l'avez placé; les autres éléments mentionnés sont les seuls autorisés et peuvent contenir l'élément mentionné. Cela peut signifier que vous avez besoin d'un élément contenant ou peut-être que vous avez oublié de fermer un élément précédent.

Une cause possible de ce message est que vous avez tenté de placer un élément de niveau bloc (tel que "<p>" ou "<table>") dans un élément en ligne (tel que "<a>", "<span> "ou" <font> ").

2
stefan bachert

Comme les autres l'ont dit, c'est très bien, vous pouvez le faire très bien. Pour moi personnellement, j'essaie de conserver une forme de structure hiérarchique avec mes éléments, avec un div comme élément le plus extérieur du parent. J'essaie d'utiliser uniquement tablepul et span à l'intérieur des formulaires. Cela facilite simplement le suivi des relations parents/enfants dans les my pages Web.

0
JT Smith