1

jqueryを使用してページに非表示のフォームを1つ挿入し、ボタンクリックイベントでjqueryを使用してフォームを送信しています。非表示のフォームはfirefoxで送信されますが、chromeでは送信されません。

以下は、document.ready関数でjqueryを使用して挿入したフォームです。

$('#leftnav').after(
       "<tr><td><form name='login1'" +        
                "action='https://abc.com/FormPost/Submit' method='post'" + 
                "id='login' >" + 
                "<input type='hidden' name='MerchantIdentifier' value='abc' />" + 
                "<input type='hidden' name='Url'" + 
                  "value='http://chcnq.chxcg.servertrust.com/one-page-checkout.asp'/>"+
                "<input type='hidden' name='Description'" +
                  "value='Volusion Order' />"+
                "<input type='hidden' name='Data' value='' />"+
                "<input type='hidden' name='TransactionIdentifier'"+ 
                  "value='12' />" + 
                "<input type='hidden' name='Amount' value='' />"+
                "<input name='Token' type='hidden' value='" + token + "' />"+
                "<input type='hidden' name='ErrorUrl' />" +
        "</form></td></tr>");

そしてボタンをクリックすると、次のコードを書きました:

$("#btnSubmitOrder").click(function() {
$("#login").submit();
});

Chrome ブラウザで動作しない理由を教えてください。

4

3 に答える 3

0

私のコメントに基づいて:

1 回のアクションで 2 つのフォームを送信することは、一般的にはお勧めできませんが、次の点に注意してください。

1) 両方のフォームにターゲット iframe を追加できます。そうすれば、ブラウザはサブミットによってリダイレクトされません。

また

2) デフォルトの動作を防ぎ、$.ajax を使用して #login フォームの URL にデータを送信し、(コールバックで) 最初のフォームで送信を呼び出すことができます。

于 2012-11-10T11:03:01.257 に答える
0

この JavaScript コードを使用します。

$("#btnSubmitOrder").click(function() {

 document.forms['login1'].submit();

});
于 2013-05-15T11:13:20.000 に答える
0

これを試して:

$("#btnSubmitOrder").click(function() {
  $("form[name=login1]").submit();
});
于 2012-11-10T10:42:38.193 に答える