0

http://bassistance.de/jquery-plugins/jquery-plugin-validation/の JQuery バリデーターを使用しています。

正しく検証するために必要な JQuery を作成しましたが、送信機能の最後の部分が正しく機能していません。

$("#commentForm").validate({
    rules: {
        email_options_name: {
            required: true
        },
        email_options_company: {
            required: true
        },
        email_options_country: {
            required: true
        },
        email_option_email: {
            required: true,
            email: true
        },
        check_options: {
            required: true,
            minlength: 1
        }
    },      
});

$("#commentForm").submit(function(){

    var valid = $("#commentForm").valid();
    if (valid) {
                $.post('scripts/process_email_initial_form.php',$(this).serialize(), function(o) {
                    location.reload();
                }, 'json');
            } else {
                $('.full-error').show();
            }

                return false;
});

$.extend($.validator.messages, {
            required: "!",
            email: "!"
});

}

送信が有効な場合、スクリプトprocess_email_initial_form.phpが呼び出されて正しく処理され (firebug を調べて)、そうでない場合は div が表示されます。問題は、スクリプトの実行が終了しlocation.reload();ても呼び出されないことです。理想的には成功ページに誘導したかったのですが、これもうまくいきませんでした。

の最後にphpヘッダー関数を配置しようとしましたprocess_email_initial_form.phpが、これも機能しません。

どんな助けでも大歓迎です。

4

3 に答える 3

3

docsによると、 submitHandlerコールバックは「検証後に Ajax 経由でフォームを送信する適切な場所」です。

$("#commentForm").validate({
    rules: {
        // your rules here
    },
    submitHandler: function(form) {
       // example below uses the 'form' plugin
       // http://www.malsup.com/jquery/form/#api
       $(form).ajaxSubmit({
            success: function(){
                window.location.href="newPage.php"
            }
       });
    }      
});
于 2013-05-21T12:11:14.993 に答える