<input> хорошо сформирован без <form>? - PullRequest
198 голосов
/ 21 июля 2010

Допустимо ли иметь <input>, не будучи в <form>?

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

Ответы [ 6 ]

184 голосов
/ 21 июля 2010

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

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

63 голосов
/ 28 декабря 2012

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

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>
  <input type='text' />
</body>
</html>
2 голосов
/ 09 ноября 2018

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

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

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

1 голос
/ 19 марта 2018

Согласно МДН возможно:

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

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

0 голосов
/ 21 июля 2014

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

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

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

0 голосов
/ 21 июля 2010

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

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