Элементы формы вне семантического тега FORM html5? - PullRequest
57 голосов
/ 22 марта 2011

Если у меня есть тег SELECT, который будет фильтровать таблицу на основе выбора пользователя, должен ли тег SELECT быть в теге FORM (чтобы быть действительным HTML5), если результирующая функциональность не будет работать, если JS отключен (т.е.мы покажем всю таблицу или ссылку «больше» вместо того, чтобы выполнять фильтрацию на стороне сервера при выборе опции действия / отправки формы (мы можем записать выбор в JS, чтобы он исчез из разметки, если JS отключен.

Или все элементы формы должны быть в теге формы независимо от использования (и, следовательно, нулевого значения атрибута 'action').

Я знаю, что HTML5 позволяет почти все, я просто не смог найтиокончательный ответ на W3, так что думал, что я получу ваши мысли. Надеюсь, что это имеет смысл. Ура.

Ответы [ 3 ]

77 голосов
/ 26 марта 2011

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

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

17 голосов
/ 22 марта 2011

Может показаться, что в HTML5 элементы формы могут находиться за пределами тега <form> и все еще быть действительными;

<!DOCTYPE html>
<html>
<head>
<title>Just making this valid</title>
</head>
<body>

<select>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

</body>

</html>

Приведенный выше код успешно проверяется (за исключением очевидных ошибок кодирования символов).Я не читал всю спецификацию HTML5, однако валидатор, как правило, корректен в подобных ситуациях.

1 голос
/ 26 апреля 2018

Спецификация HTML5 специально позволяет <input> s (и другим элементам, связанным с формой) не иметь <form>:

Элемент, связанный с формой, может иметьсвязь с элементом <form>, который называется владельцем формы элемента .Если элемент, связанный с формой, не связан с элементом <form>, его владелец формы считается нулевым.

Поэтому не стесняйтесь использовать их там, где пожелает ваше сердце!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...