form - textbox javascript event




1つのボタンで2つのフォームを送信する (5)

1つのボタンで2つのフォームを提出する場合は、これを行う必要があります:

1- setTimeout()を使用する

2 - ショーポップアップを許可する

<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>

javascriptは2つのフォームを同時に送信しません 我々 は、同時にではなく、二重の後に一つのボタンで二つのフォームを提出する。

編集: このコードを使用すると、ブラウザはポップアップを許可しません。
私のようなあなたのソフトウェアにこのコードを使用すれば、ショーポップアップ用のブラウザを設定するだけですが、サイトを設計する際にブラウザを使用すると、ブラウザは障壁となり、コードは実行されません。

私はHTML形式の2つの形式を持っています.1つはPHPを使用してデータベースへの入力時にデータを提出し、もう1つはユーザーをpaypal支払いページに誘導します、私の問題はユーザーが両方の形式を提出しなければならないことです。しなければなりません。 とにかく、2つのフォームに1つの送信ボタンを使用することはありますか?

(Javascriptを歓迎します)


AJAXを使用して最初のフォームを提出することもできます。そうしないと、他のフォームが提出されなくなります。


クロムとIE9(と私は他のすべてのブラウザも推測している)では、後者はソケット接続を生成し、最初のものは破棄されます。 (ブラウザは、両方のリクエストが上記のコード内の1つのJavaScript「タイムスライス」内に送信され、最後のリクエストを除くすべてのリクエストを破棄するので、これを検出します)。

代わりに、2回目の送信(ただし、返信が受信される前)のイベントコールバックがある場合、最初のリクエストのソケットはキャンセルされます。 この場合、サーバーが最初のリクエストを処理した可能性があるので、これは絶対に推奨するものではありませんが、確かに分かりません。

私はあなたが使用する/あなたはサーバー側を処理できる単一の要求を生成することをお勧めします。


フォーム提出によって、ページはフォームのactionに移動します。 したがって、両方のフォームを伝統的な方法で提出することはできません。 各フォームでform.submit()を連続して呼び出すことでJavaScriptを使用しようとすると、最後のサブミッションを除いて各リクエストは中断されます。 JavaScriptを使用して最初のフォームを非同期で送信する必要があります。

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();

通常の送信ボタンがある場合は、次のようなonclickイベントを追加できます。

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






forms