Встроить HTML <форма> в большем <форма>?

Конкретная Математика затрагивает большинство главных тем. Хорошая книга по Дискретной Математике, как Rosen дискретная математика и Ее Приложения , заполнит любые разрывы.

33
задан MikeN 18 November 2009 в 20:52
поделиться

6 ответов

То, что вы описали, не будет работать.

Одним из способов решения проблемы может быть создание двух форм, которые не являются вложенными. Вы должны использовать скрытые входы для исходной родительской формы, которые дублируют входные данные из исходной вложенной формы. Затем используйте манипуляции с Javascript / DOM, чтобы перехватить событие отправки в вашей «родительской» форме, скопировав значения из «вложенной» формы в скрытые входы в «родительской» форме, прежде чем разрешить отправку формы.

Ваша структура формы будет выглядеть примерно так (без учета HTML макета):

<form id="form1">
  <input name="val1"/>
  <input name="val2" type="hidden" />
  <input type="button" name="Submit Form 1 data including form 2" 
         onsubmit="return copyFromForm2Function()">
</form>
<form id="form2">
  <input name="val2"/>
  <input type="button" name="Submit Form 2 ONLY">
</form>
38
ответ дан 27 November 2019 в 18:03
поделиться

У вас не может быть вложенных форм ( источник ), поэтому это не сработает.

Каждая форма должна быть заключена в элемент FORM. В одном документе может быть несколько форм , но элемент FORM не может быть вложенным

31
ответ дан 27 November 2019 в 18:03
поделиться

Я нашел этот PDF-файл отличным, когда переходил с других языков на Objective-C, так как он систематически сравнивает ряд функций C ++ и Java с Objective-C:

http://ktd.club.fr/programmation/fichiers/cpp-objc-en.

1
ответ дан 27 November 2019 в 18:03
поделиться

Думаю, для этого могут быть проблемы с пользовательским интерфейсом. Для пользователя было бы очень запутанно, если бы была отправлена ​​/ сохранена только часть (что кажется) одной формы.

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

0
ответ дан 27 November 2019 в 18:03
поделиться

Это недопустимо и, по моему опыту, приведет к произвольным результатам.

Вы можете обойти это, используя функции DOM Javascript, беря form2 из form1, помещая его в тело, отправляя и возвращая в form1.

Изменить: это тоже не будет на 100% правильным, поскольку он все еще имеет вложенные формы. Как указано в некоторых ответах, у вас должны быть две отдельные формы. Вы все еще можете сделать это, используя магию DOM, но сделав еще несколько ходов - см. Ответ Рэндольфо.

0
ответ дан 27 November 2019 в 18:03
поделиться

Как говорили другие, вы не можете вкладывать элементы формы. Я бы справился с чем-то подобным, используя одну форму, а затем сгруппировал бы элементы с помощью наборов полей. Затем вы можете добавить события к кнопкам отправки с помощью javascript и включить / отключить поля ввода, которые должны быть отправлены.

С jQuery, MooTools или любым другим фреймворком это было бы очень просто. Однако он сломается, если клиент отключит скрипты.

Решение MooTools может выглядеть так:

$('submit2').addEvent('click', function (e) {
    e.stop();
    $$('#fieldset1 input').set('disabled', 'disabled');
    $('form').submit();
    $$('#fieldset2 input').set('disabled', '');
}

О, и я надеюсь, у вас есть веская причина для этого, потому что для меня это подозрительно звучит как плохое удобство использования: -)

0
ответ дан 27 November 2019 в 18:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: