Форма внутри формы, это хорошо?

Можно ли иметь форму внутри другой формы?. Есть ли проблемы с этим.

Ответ 1

Хотя вы можете иметь несколько элементов <form> на одной странице HTML, вы не можете их вложить.

Ответ 2

Нет. HTML явно запрещает вложенные формы.

Из проект HTML 5:

Модель контента:    Содержимое потока, но без потомков элемента формы.

Из Рекомендация HTML 4.01:

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->

(Обратите внимание на раздел - (FORM)).

Ответ 3

Вложенность форм может быть достигнута с помощью нового атрибута формы элемента ввода HTML5. Хотя мы не структурируем формы гнезда, входы оцениваются так, как они находятся в их собственной форме. В моих тестах поддерживаются 3 основных браузера, кроме IE (IE11). Ограничение на вложение формы было большим препятствием для разработки HTML-интерфейса.

Вот пример кода, когда вы нажимаете кнопку "Сохранить", вы должны увидеть "2 3 успеха" (оригинал http://www.impressivewebs.com/html5-form-attribute/):

<form id="saveForm" action="/post/dispatch/save" method="post"></form>
<form id="deleteForm" action="/post/dispatch/delete" method="post"></form>

<div id="toolbar">
    <input type="text" name="foo" form="saveForm" />
    <input type="hidden" value="some_id" form="deleteForm" />
    <input type="text" name="foo2" id="foo2" form="saveForm" value="success" />

    <input type="submit" name="save" value="Save" form="saveForm" onclick="alert(document.getElementById('deleteForm').elements.length + ' ' + document.getElementById('saveForm').elements.length + ' ' + document.getElementById('saveForm').elements['foo2'].value);return false;" />
    <input type="submit" name="delete" value="Delete" form="deleteForm" />
    <a href="/home/index">Cancel</a>
</div>

Ответ 4

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

Пример формы сообщения с кнопкой ссылки submit:

Вместо формы... оберните свой ввод в div:

 <div id="gap_form"><input type="hidden" name="PostVar"/><a id="myLink" href="javascript:Form2.submit()">A Link</a></div>

js файл:

$(document).ready(function () {
(function () {
    $('#gap_form').wrap('<form id="Form2" action="http://sitetopostto.com/postpage" method="post" target="_blank"></form>');
})();});

Это будет охватывать все внутри div "gap_form" внутри формы "на лету", и ссылка представит эту форму. У меня есть этот пример, который теперь работает на странице... (В моем примере... Вы могли бы сделать то же самое, перенаправившись на новую страницу и представив форму на этой странице... но мне это нравится лучше)

Ответ 5

Вложенные формы не поддерживаются и не являются частью стандарта w3c (как многие из вас заявили).

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

Значение атрибута "form" должно быть id формы или в случае нескольких форм, отдельный идентификатор формы с пробелом.

Здесь вы можете прочитать

Ответ 6

Да, есть. Это неверно. Это не сработает, потому что это неправильно. Большинство браузеров будут видеть только одну форму.

http://www.w3.org/MarkUp/html3/forms.html

Ответ 7

Другим обходным решением было бы инициировать модальное окно, содержащее его собственную форму

Ответ 8

Недействительный XHTML должен иметь вложенные формы. Однако вы можете использовать несколько кнопок отправки и использовать serveride script для запуска разных кодов в зависимости от того, на какую кнопку нажали пользователи.

Ответ 9

Нет, мы не можем вложить формы в другую форму, подобную этой

<form name='form1'>
      <form name='form2'>
            //some code here
      </form>
</form>

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