2

以下は、連絡先フォームから電子メールを送信しようとしているjs関数です。正常に機能している検証チェックを使用しましたが、コードがフォームを送信すると、プロセスはそこで停止し、$.ajax. 不思議なことに、クリックイベント$('#send_message').click(function(e){でまったく同じコードを使用するとうまくいきましたが、クリックトリガーリッスンを削除して関数を呼び出して実行しようとするとうまくいきませんでした。関数を呼び出してメールを送信する

 $.ajax({
                    type:"POST",
                    url:"email.php",
                    data: $("#contact").serialize(),
                    success:function(result){
                        //alert(response);
                        if(result == 'sent')
                        {

                             $('#send_message').removeAttr('disabled').attr('value', 'Send Info');

                            //and show the mail success div with fadeIn

                        }
                        else
                        {

                            //show the mail failed div


                        }
                     }

                });
4

1 に答える 1

2

常に false を返す必要があります。進行中の ajax ポストバックは、フォームの送信によってキャンセルされます。

を削除するだけelseです。

jquery ajax は同期ポストバックもサポートしています。

$.ajax({
   type:"POST",
   url:"send_email.php",
   data: $("#contact").serialize(),
   async: false,
   success:function(result){

編集:最初の解決策も機能するはずですが、フォーム タグで return を使用することが重要です。<form method="POST" onsubmit="return somefunction();">

于 2013-05-14T23:43:15.040 に答える