0

AJAX フォーム スクリプトを作成しました。送信後、フォームは PHP で検証されます。問題がなければ、成功メッセージが表示されます。検証エラーがあった場合は、入力を簡単に修正できるように、対応するフィールドをユーザーに示します。その後、もちろんフォームを再度送信する必要があります。

初期関数は を使用して呼び出され$("form").submitます。検証エラーが修正された後に再送信できるようにするには、

$(".error-msg").click( function () {
    $("form").submit();
});

(はい、エラー メッセージをクリックすると、フォームが送信されます。)

データが POST されているのを確認できますが、成功メッセージは表示されません。なんで?.submit再帰的に使用できるコールバックはありますか?

編集

リクエストに応じて - その他のコード:

$("form").submit(function () {

        var name     = $( "input[name=name]" ),
            mail     = $( "input[name=email]" ),
            message  = $( "textarea[name=message]" );

        var string = "name=" + name.val() + "&email=" + mail.val() + "&message="  + encodeURIComponent(message.val());

        $( "form input" ).attr( "disabled", "true" );
        $( "form textarea" ).attr( "readonly", "true" );

        $.ajax({
            url: "my-form.php",
            type: "POST",
            data: string,
            dataType: "json",
                success: function ( result ) {

                    if ( result.status === "success" ) {

                        alert( "success" );

                    }

                    if ( result.status === "fail" ) {

                            alert( "fail" );

                            $.each( result.data, function( k , v ) {

                                $( "#" + v.field ).removeAttr( "disabled" ).after("<p>" + v.errorMsg + "</p>");

                                $(".error").animate({
                                    opacity: 1
                                }, 500);

                                $(".error").click( function () {
                                    $("form").submit();
                                });

                            });

                    }
                }

        return false;
    })
4

0 に答える 0