2

手動またはプログラムで送信したいページがあります。ただし、ページの送信が許可される前に、関数 [create_impi_num(x)] を開始して、その関数で "$.post('" を使用してデータを保存する必要があります。

問題: submit(function(e) を false に設定すると、関数が呼び出され、データが保存されます。return を true に設定すると、フォームは送信されますが、関数は無視されます。

ここに私のコードがあります:

$('#pay-and-complete').submit(function(e) {

 var ok = confirm('Do you really want to save your data?');
    if (ok) {

     var CanPay;
     var igroupid =  Number($('#hid-step3-entryid').val());

     //function here
      create_impi_num($('#hid-parc-id').val(),$('#hid-step3-entryid').val());

      return true;
   }
    else {
     //Prevent the submit event and remain on the screen
     create_impi_num($('#hid-parc-id').val(),$('#hid-step3-entryid').val());
      e.preventDefault();
      return false;
    }

  });

解決策を見つけるのに何時間も費やしました。誰かがそれを助けることができれば、それは大歓迎です!

4

1 に答える 1

2

それは単にあなたが望むように行うことはできません。

jQuerypost関数は、コードが実行され続けている間、将来的に返されることを意味する非同期で実行します。結果が返されるまで、送信機能はすでに実行されています。

送信する必要がある場合は、postコールバックで実行できます。javascriptネイティブ関数を使用して送信またはリダイレクトします。

于 2013-01-15T08:41:45.490 に答える