Это действительно HTML, чтобы иметь следующее:
<form action="a">
<input.../>
<form action="b">
<input.../>
<input.../>
<input.../>
</form>
<input.../>
</form>
Поэтому, когда вы отправляете «b», вы получаете только поля во внутренней форме. Когда вы отправляете «а», вы получаете все поля, кроме «б».
Если это невозможно, какие обходные пути для этой ситуации доступны?
html
web-standards
standards-compliance
allyourcode
источник
источник
Ответы:
A. Это не действительный HTML, ни XHTML
В официальной спецификации W3C XHTML, раздел B. «Запрещение элементов», говорится, что:
http://www.w3.org/TR/xhtml1/#prohibitions
Что касается более старой спецификации HTML 3.2 , в разделе об элементе FORMS указано, что:
Б. Обходной путь
Есть обходные пути, использующие JavaScript без необходимости вложения тегов формы.
«Как создать вложенную форму». (несмотря на заголовок, это не вложенные теги формы, а обходной путь JavaScript).
Ответы на этот вопрос StackOverflow
Примечание. Хотя можно проверять валидаторы W3C, чтобы они пропускали страницу, манипулируя DOM с помощью сценариев, это все же не является допустимым HTML. Проблема с использованием таких подходов заключается в том, что поведение вашего кода теперь не гарантируется во всех браузерах. (так как это не стандартно)
источник
В случае, если кто-то найдет этот пост здесь - отличное решение без необходимости использования JS. Используйте две кнопки отправки с разными атрибутами имени, проверьте на языке вашего сервера, какая кнопка отправки была нажата, потому что только одна из них будет отправлена на сервер.
Серверная сторона может выглядеть примерно так, если вы используете php:
источник
HTML 4.x и HTML5 запрещают вложенные формы, но HTML5 разрешит обходной путь с атрибутом «form» («владелец формы»).
Что касается HTML 4.x, вы можете:
источник
Как уже говорили другие, это не правильный HTML.
Похоже, вы делаете это, чтобы визуально расположить формы друг в друге. Если это так, просто создайте две отдельные формы и используйте CSS для их размещения.
источник
Нет, спецификация HTML гласит, что ни один
FORM
элемент не должен содержать другойFORM
элемент.источник
Вы можете легко ответить на свой вопрос, введя HTML-код в W3 Validator. . (Он имеет поле для ввода текста, вам даже не придется размещать свой код на сервере ...)
(И нет, это не будет подтверждено.)
источник
лучше использовать собственный javascript-метод внутри атрибута action формы!
например
источник
Возможность состоит в том, чтобы иметь iframe внутри внешней формы. Iframe содержит внутреннюю форму. Обязательно используйте
<base target="_parent" />
тег внутри тега заголовка iframe, чтобы форма работала как часть главной страницы.источник
нет, смотри w3c
источник
Нет, это недействительно. Но «решением» может быть создание модального окна вне формы «a», содержащего форму «b».
Это легко сделать, если вы используете bootstrap или материализуете css. Я делаю это, чтобы избежать использования iframe.
источник
Обход без JavaScript для вложения тегов формы:
Потому что вы позволяете
при отправке «а» будет работать следующее, используя обычные веб-формы без хитрых трюков JavaScript:
Шаг 1. Разместите каждую форму на своей веб-странице.
Шаг 2. Вставьте iframe везде, где вы хотите, чтобы эта подформа появлялась.
Шаг 3. Прибыль.
Я пытался использовать сайт с площадкой для кода, чтобы показать демо, но многие из них запрещают встраивать свои сайты в фреймы, даже в пределах своего домена.
источник
Если вам нужна форма для отправки / фиксации данных в реляционной базе данных 1: M, я бы порекомендовал создать триггер БД «после вставки» в таблицу A, который вставит необходимые данные для таблицы B.
источник
Нет, это недопустимо, но вы можете обмануть свою внутреннюю позицию в форме
HTML
с помощьюCSS
и с помощьюjQuery
. Сначала создайте некоторый контейнерный div внутри вашей родительской формы, а затем в любом другом месте на странице div с вашей дочерней (внутренней) формой:....
Дайте вашему контейнеру div немного стабильной высоты
Спасибо трюк позиции "other_form" относительно контейнера div.
PS: Вам придется играть с числами, чтобы они выглядели красиво.
источник