Правильно ли использовать DIV внутри FORM? - PullRequest
77 голосов
/ 30 марта 2012

Мне просто интересно, что вы думаете о DIV-теге внутри FORM-тега?

Мне нужно что-то вроде этого:

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

Общепринятая практика использования DIV внутри FORM или мне нужно что-то другое?

Ответы [ 9 ]

116 голосов
/ 30 марта 2012

Это совершенно нормально.

form будет отправлять только свои элементы управления типом ввода (* также Textarea, Select и т. Д.).

Вам не о чем беспокоиться о div в пределах form.

24 голосов
/ 31 января 2013

Вполне допустимо использовать DIV внутри тега <form>.

Если вы посмотрите на таблицу стилей по умолчанию CSS 2.1 , div иp оба в категории 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>
7 голосов
/ 30 марта 2012

Вы можете использовать <div> в форме - там нет проблем .... НО , если вы собираетесь использовать <div> в качестве метки для input dont.. label гораздо лучший вариант:

<label for="myInput">My Label</label> 
<input type="textbox" name="MyInput" value="" />
2 голосов
/ 05 января 2013

Ваш вопрос не касается того, что вы хотите поместить в теги DIV, и, вероятно, поэтому вы получили некоторые неполные / неправильные ответы. Правда в том, что, как сказал Ройи, вы можете поместить теги DIV в свои формы. Вы не хотите делать это, например, для меток, но если у вас есть форма с набором флажков, которые вы хотите разместить в трех столбцах, тогда непременно используйте теги DIV (или SPAN, HEADER и т. Д. .) чтобы создать внешний вид и почувствовать, что вы пытаетесь достичь.

2 голосов
/ 30 марта 2012

Неправильно иметь в качестве прямого потомка

И, кстати, / > может не работать на каком-то типе

Проверьте это с помощью http://validator.w3.org/check


тип документа не допускает здесь элемент «ВВОД»; отсутствует один из символов «P», «H1», «H2», «H3», «H4», «H5», «H6», «PRE», «DIV», «ADDRESS»

Упомянутый элемент не может появляться в контексте, в котором вы его поместили; другие упомянутые элементы являются единственными, которые разрешены там и могут содержать упомянутый элемент. Это может означать, что вам нужен содержащий элемент или, возможно, вы забыли закрыть предыдущий элемент.

Одной из возможных причин этого сообщения является попытка поместить элемент уровня блока (например, "

" или "

2 голосов
/ 30 марта 2012

Определение и использование

Тег определяет раздел или раздел в документе HTML.

Тег используется для группировки блочных элементов для форматирования их стилями.http://www.w3schools.com/tags/tag_div.asp

Также DIV - MDN

Элемент HTML (или элемент разделения HTML-документов) является общим контейнером для содержимого потока, котороепо своей сути ничего не представляет.Его можно использовать для группировки элементов в целях стилизации (с использованием атрибутов class или id) или потому, что они имеют общие значения атрибутов, например lang.Его следует использовать только в том случае, если другой семантический элемент (например, или) не подходит.

Вы можете использовать div внутри формы, если вы говорите об использовании div вместо таблицы, то обратитесь к Google по поводу Tableless webдизайн

0 голосов
/ 22 сентября 2013

Абсолютно нет!Он будет отображаться, но не будет проверяться.Используйте ярлык.

Это не правильно.Это не доступно.Вы видите это на некоторых сайтах, потому что некоторые разработчики просто ленивы.Когда я нанимаю разработчиков, это одна из первых вещей, которую я проверяю в работе кандидатов.Формы противны, но не торопитесь и учитесь делать их правильно

0 голосов
/ 30 марта 2012

Как уже говорили другие, все хорошо, вы можете сделать это просто отлично. Лично я стараюсь сохранять форму иерархической структуры с моими элементами с div, являющимся самым внешним родительским элементом. Я стараюсь использовать только table p ul и span внутри форм. Просто мне легче отслеживать отношения между родителями и детьми на моих веб-страницах.

0 голосов
/ 30 марта 2012

Нет, его не

<div> теги всегда используются для создания веб-макета.Его символическое назначение - разделить раздел / часть на странице, чтобы к нему можно было добавить или применить отдельный стиль. [документ w3schools] [W3C]

Itв значительной степени зависит от того, что есть у some и another.

HTML5, имеет больше тегов логического значения вместо простых тегов макета.Все section, header, nav, aside имеют свое семантическое значение.И используются против <div>

...