Является <input> хорошо сформированным без <form>?

Действительно ли имеет значение <input>, если оно не находится в <form>?

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

Ответ 1

<input> без <form> появляется корректно, да (по крайней мере, для html 4.01, посмотрите ближе к концу 17.2.1)

Элементы, используемые для создания элементов управления обычно появляются внутри ФОРМЫ элемент, но может также отображаться вне объявления элемента FORM, когда они используются для создания пользователя интерфейсы. Это обсуждается в раздел о внутренних событиях. Обратите внимание, что элементы управления вне формы не могут быть успешный контроль.

Ответ 2

Я проверил следующее с W3C validator и подтверждает, что это действительно.

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>
  <input type='text' />
</body>
</html>

Ответ 3

Да, вы можете иметь действительный ввод без формы.

Ответ 4

Ссылка на более актуальную спецификацию:

HTML 5.2 - Рекомендация W3C (14 декабря 2017 г.)

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

Ответ 5

Согласно MDN возможно:

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

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

Ответ 6

Конечно, используйте

document.getElementById('your_input_id').validity.valid

чтобы проверить правильность поля динамически.