Вложенные поля

РЕДАКТИРОВАТЬ: Головокружения заставили меня переформулировать вопрос.

Является ли он семантически корректным представлять подразделы с использованием полей?

= Basic Info =
   First Name: ________
    Last Name: ________

= Address =
Business Name: ________
      Streeet: ________
         City: ________

Как вы работаете с вложенными формами? Разве нет лучшего способа, который по умолчанию выглядел бы нормально?

Ответ 1

Да, это семантически правильно.

Ответ 2

В основном вы задали два вопроса:

Если это семантически исправляет ваш пример и если вы можете вставлять элементы fielset.

Некоторые приведенные здесь ответы неверны.

Синтаксически корректно, но не семантически корректно, и вы можете вставлять элементы набора полей.

Это не семантически правильно по той причине, что форма это не элемент представления. Таблицы используются для отображения информации в строках и столбцах, где вы явно этого не делаете. Стол не является опорой для создания хорошей формы, и именно так вы ее использовали.

Ниже вы можете найти несколько советов.

Обращаясь к стандарту HTML5, я цитирую из документа заявки: "Каждая часть формы считается абзацем и обычно отделена от других частей с помощью p элементов".

http://dev.w3.org/html5/spec/single-page.htm раздел 4.10

http://dev.w3.org/html5/spec-LC/forms.html

Также должен отвечать на вопрос о вложенности.

Вопрос, я думаю, возникает из желания узнать, как разделать контент. Ответ - с полями. Сама форма имеет смысл, поэтому "да", это будет набор полей, который будет содержать все элементы формы (и может быть отключен).

Возвращаясь к вашему примеру, у вас будет набор полей для "регистрации" и разделов регистрации, сгруппированных по вложенным полям, так как один из таких разделов в вашем примере - это "адрес".

"Лучший" способ сделать форму... это зависит, и я думаю, что это еще один вопрос, который останется открытым для обсуждения, пока HTML5 не будет готов и не будет корректно реализован во всех браузерах.

Ответ 3

Да, есть пример вложенности в спецификациях.

<fieldset name="clubfields" disabled>
 <legend> <label>
  <input type=checkbox name=club onchange="form.clubfields.disabled = !checked">
  Use Club Card
 </label> </legend>
 <p><label>Name on card: <input name=clubname required></label></p>
 <fieldset name="numfields">
  <legend> <label>
   <input type=radio checked name=clubtype onchange="form.numfields.disabled = !checked">
   My card has numbers on it
  </label> </legend>
  <p><label>Card number: <input name=clubnum required pattern="[-0-9]+"></label></p>
 </fieldset>
 <fieldset name="letfields" disabled>
  <legend> <label>
   <input type=radio name=clubtype onchange="form.letfields.disabled = !checked">
   My card has letters on it
  </label> </legend>
  <p><label>Card code: <input name=clublet required pattern="[A-Za-z]+"></label></p>
 </fieldset>
</fieldset>