использует менее «традиционный» формат кодировки url, чем

(JavaScript приветствуется)

Вы должны быть в состоянии сделать это с помощью JavaScript: Если у ваших форм есть идентификаторы:

<input type="button" value="Click Me!" onclick="submitForms()" />

Если у ваших форм нет идентификаторов, но есть имена:

submitForms = function(){
    document.getElementById("form1").submit();
    document.getElementById("form2").submit();
}

Отправка формы заставляет страницу перейти на

submitForms = function(){
    document.forms["form1"].submit();
    document.forms["form2"].submit();
}

формы. Таким образом, вы не можете отправить обе формы традиционным способом. Если вы попытаетесь сделать это с помощью JavaScript, вызвав action в каждой из последовательных форм, каждый запрос будет прерван, за исключением последней отправки. Итак, вам нужно отправить первую форму асинхронно с помощью JavaScript: form.submit() Вы можете отправить первую форму с помощью AJAX, в противном случае отправка одной из них будет препятствовать отправке другой.

var f = document.forms.updateDB;
var postData = [];
for (var i = 0; i < f.elements.length; i  ) {
    postData.push(f.elements[i].name   "="   f.elements[i].value);
}
var xhr = new XMLHttpRequest();
xhr.open("POST", "mypage.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(postData.join("&"));

document.forms.payPal.submit();

В Chrome и IE9 (и я предполагаю, что все другие браузеры тоже) только последний будет генерировать соединение через сокет, первый будет отброшен. (Браузер обнаруживает это, поскольку оба запроса отправляются в пределах одного «временного интервала» JavaScript в приведенном выше коде, и отбрасывает все, кроме последнего запроса.)

Если вместо этого у вас есть какой-то обратный вызов события, сделайте вторую отправку (но до ответа получен), сокет первого запроса будет отменен. Это

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

Выбранный на данный момент лучший ответ слишком размыт, чтобы быть надежным.

Мне кажется, это довольно безопасный способ сделать это:

(Javascript: использовать jQuery для упрощения написания)

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

$('#form1').submit(doubleSubmit);

function doubleSubmit(e1) {
    e1.preventDefault();
    e1.stopPropagation();
    var post_form1 = $.post($(this).action, $(this).serialize());

    post_form1.done(function(result) {
            // would be nice to show some feedback about the first result here
            $('#form2').submit();
        });
};

post_form2 ?). Хотя я не проверял код.

если вы хотите отправить две формы с помощью одной кнопки, вам нужно сделать следующее:

1 — использовать setTimeout ()

2 — разрешить показ всплывающих окон

javascript не отправляет две формы

<script>
function myFunction() {
setTimeout(function(){ document.getElementById("form1").submit();}, 3000);   
setTimeout(function(){ document.getElementById("form2").submit();}, 6000);   
}
</script>
<form  target="_blank" id="form1">
<input type="text">
<input type="submit">
</form>
<form target="_blank" id="form2">
<input type="text">
<input type="submit">
</form>

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

Мы только что выпустили если вы используете этот код для своего программного обеспечения, как я, просто установите браузер для показа всплывающих окон, но если вы используете его при разработке сайта, браузер является барьером, и код не запускается.
Если у вас есть обычная кнопка отправки, вы можете добавить к ней событие onclick, которое выполняет следующие действия:

javascript — почему я должен поместить весь скрипт в index.html в jquery mobile — Переполнение стека

document.getElementById('otherForm').submit();