У меня есть страница с несколькими формами. Я пытаюсь представить одну из форм (например, форму A) (НЕ через Ajax, так как мне нужно загрузить страницу результатов после обработки отправки), НО мне нужно другое содержимое формы (например, форму B), которое будет отправлено ВМЕСТЕ с помощью форма A, то есть содержимое форм A + B должно быть отправлено ВМЕСТЕ к ОДНОМУ URL, как к одному запросу, и, как я сказал ранее, НЕ как запрос Ajax.
Подача должна быть выполнена по запросу POST. Кроме того, формы содержат ТОЛЬКО поля, которые не являются загрузкой файлов (т.е. Поля ввода, выбора, textarea).
Я видел здесь предложения, такие как
Проводка/отправка нескольких форм в jQuery
или
Отправка двух форм с помощью одной кнопки
но обратите внимание, что это не соответствует моему делу, так как формы представлены в разных запросах и/или отправляются через Ajax.
Я думал о том, чтобы получить содержимое одной из форм с помощью (jQuery's) serialize(), но как я могу прикрепить эту строку к форме, представленной POST?
Или, может быть, у вас есть другие идеи, как это сделать?
РЕШЕНИЕ:
Основываясь на идеях Sheepy и YoTsumi, я написал следующий код. Я также использую ответ Pointy из следующей ссылки:
отправить несколько форм на ту же страницу
//Arguments: "name"s of forms to submit.
//First argument: the form which according to its "action" all other forms will be submitted.
//Example: mergeForms("form1","form2","form3","form4")
function mergeForms() {
var forms = [];
$.each($.makeArray(arguments), function(index, value) {
forms[index] = document.forms[value];
});
var targetForm = forms[0];
$.each(forms, function(i, f) {
if (i != 0) {
$(f).find('input, select, textarea')
.hide()
.appendTo($(targetForm));
}
});
$(targetForm).submit();
}