0

フォームで Jquery 検証を使用し、.on(submit) コードで Ajax 関数も使用しています。

問題は、検証が間違っていても .on(submit) 関数がまだ実行されることです。

フォームが正しく検証された場合にのみ実行されるように、検証コードに追加して .on(submit) コードを追加する「検証成功の場合」コードのタイプはありますか?

これは .on(submit) 関数です

        $('#valform').on('submit', function (e){
    e.preventDefault();
    $.ajax({
    type: "POST",
    url: "<?php echo MAXINBOUND_PLUGIN_URL ?>/php/localProxy.php",
    data: $('#valform').serialize(),
    success: function (response) {
            alert('Great!');
             // do something!
    },
    error: function () {
            alert('There was a problem!');  // handle error
    }
        });
        });

これが検証コードです

    $("#valform").validate({
    invalidHandler: function(form, validator) {
        success: function (response) {
        var errors = validator.numberOfInvalids();

        if (errors) {
            $("#error-message").show().text("Please correct the required field(s)");
        } else {
            $("#error-message").hide();
        }
    },
    messages: {
        agree: {
            required: ""
        },
        phone1: {
            required: ""
        },
        address1: {
            required: ""
            },
    },
    rules: {
        agree: {
            required: true,
        },
        phone1: {
            required: true,
            phoneUS: true
        },
        Address1: {
            required: true,
            addr: true,
            },

        },

     });
4

2 に答える 2

3

submitHandlerを使用して ajax 呼び出しを行うことができます。したがって、すべての検証に合格した後にのみ呼び出されます。

$("#valform").validate({
   submitHandler: function(form) {
     //do ajax call
   }
})
于 2012-08-17T03:38:50.927 に答える
1

jquery valid() メソッドを使用して、送信されたフォームが有効かどうかを確認できます。このようなもの...

if ($("#valform").valid()) {
    // do your ajax stuff
}

valid()は、その前にフォームでvalidate()が呼び出された場合にのみ機能することに注意してください。

お役に立てれば!

于 2012-08-17T02:56:13.830 に答える