1

フォームを送信するときにアクションを実行する方法を理解するのに少し苦労していますが、送信される前です。問題は、アクション タグがユーザーを別のサイトにリダイレクトすることです。送信ボタンをクリックしたときに電子メールを送信するには、AJAX が必要です。AJAX が失敗した場合でも、ユーザーをリダイレクトする必要があります。

$.ajax() について読みましたが、jQuery が応答を受け取るまでフォームの送信を停止する方法がわかりません。それは自動的に行われますか?

別のスレッドで、送信の代わりに入力タイプ「ボタン」を使用することが推奨されていることがわかりました。これにより、手動で $(form).submit(); を実行できることがわかっています。後で、よりよく制御できるようになりましたが、前の部分を完全に理解するのにまだ苦労しています.

私はこれに対する答えが非常に単純であることを知っています。

ご協力いただきありがとうございます!

4

3 に答える 3

8

ajax リクエストが完了するまでフォームの送信を防ぐには、このasyncオプションを無効にします。

$.ajax({
  url: 'my_url.php',
  async:false,
  .....
});
于 2012-05-04T00:21:18.927 に答える
1

他の場所で見た推奨事項は、まさにあなたがしなければならないことです。

すぐに送信をキャンセルする必要があります。( return falseing または を呼び出すことによりe.preventDefault()) その後、サーバーから応答を受け取ったら、AJAX コールバックでフォームを再送信できます。
(AJAX リクエストを 2 回目に行わないように注意してください)

于 2012-05-04T00:19:30.307 に答える
0

フォームのonSubmit属性を使用できます。

<form action="./something.php" method="post" onSubmit="someFunction();">

関数が返さtrueれた場合、デフォルトのアクションが実行されます。それ以外の場合、デフォルトのアクションは阻止されます。

于 2012-05-04T00:22:22.193 に答える