0

フォームを閉じて「メッセージが正常に送信されました」というテキストを表示するか、「エラー: メッセージは 200 文字を超える必要があるか、有効な電子メールを挿入してください」などのエラー メッセージを表示することで、送信時にフォームの表示を調整する .js ファイルにこのコードがあります。住所」など

メッセージが正常に送信されたときにフォームを閉じることはうまく機能し、「メッセージは正常に送信されました」というメッセージだけを残しますが、エラーが発生したときにフォームを閉じることはうまく機能しません。これは、メッセージに戻って修正する方法がないためです。

メッセージが正常に送信された場合にのみフォームがスライドアップするようにコードを調整するのを手伝ってもらえますか?そうでない場合、エラーが発生した場合、フォームは表示されたままですが、以下のエラーメッセージが表示されます。このようにして、エラーを確認して変更を加えることができます上記のフォームを送信してから、もう一度送信ボタンを押して 2 回目の送信を試みます。

変更が必要だと思うコードは次のとおりです。成功とは異なる別の状態である可能性があると想定しています。エラーステージの場合?:

submitHandler: function(form) {
   $("#send").attr("value", "Sending...");
   $(form).ajaxSubmit({
      success: function(responseText, statusText, xhr, $form) {
         $(form).slideUp("fast");
          $("#response").html(responseText + "<br/>").hide().slideDown("fast");
      }
   });
   return false;
}

#sendは送信ボタンで#response、応答テキストを表示する div です。

誰かが助けてくれることを願っています。ありがとう。

4

1 に答える 1

1

PHP スクリプトで、結果を JSON で返します。

$result = array('error' => $error, 'message' => $response);
echo json_encode($result);

jQuery で、次のようにします。

$(form).ajaxSubmit({
    dataType: 'json',
    success: function(response, statusText, xhr, $form) {
        if (!response.error) {
            $(form).slideUp("fast");
        }
        $("#response").html(response.message + "<br/>").hide().slideDown("fast");
    }
 });
于 2013-02-23T11:11:35.280 に答える