3

jQuery 検証プラグインを使用する場合、ajax を使用して生成されたフォームを検証するにはどうすればよいですか?

つまり、ページが読み込まれたときにフォームが最初にページに表示されるのではなく、ajax を使用してページに追加されます。

私はbassistance.de/jquery-plugins/jquery-plugin-validation/の例に従っていますが、検証プラグインはフォームを検証しないようです。それ以外の場合は、正常に動作します。これを行う方法はありますか。jquery が live() を使用するのと同じように、このシナリオでプラグインを機能させるために使用できるものはありますか?

私はこのようにやっています:

$("#thisForm").validate({

    rules: {

    },

    messages: {

    },

    submitHandler: function() {
    $.ajax({
            type: "POST",
             url: "/",
            data: $('#thisForm').serialize(),
        dataType: "json",
           cache: false,

        beforeSend: function(html) {

        },

    success: function(signInData) {


        },

        });
    }
});
4

4 に答える 4

0

AJAX経由でフォームをロードし、AJAXでフォームを送信したいときにもこの問題が発生しました(現在のページにとどまるために...)。これは私のために働いた:

//Newbie note: ajaxFormCallback is the callback function - which runs once my AJAX loaded form has been added to the page.

var ajaxFormCallback = function(){
    var form = $('#form-id-here');

    form.validate({
        rules: {
            'name': {
                required: true
            },
            'email': {
                required: true,
                email: true
            }
        },
        messages: {
            'name': {
                required: 'Name is required'
            },
            'email': {
                required: 'Email address is required',
                email: 'Invalid email address'
            }
        },
        submitHandler: function(form){
            //submit form via AJAX
            $.ajax({
                type: 'POST',
                url: '/path/to/submit/form/?' + $(form).serialize() + '&ajax=1',
                success: function(data){
                    //replace my form with a response:
                    $(form).parents('.response').replaceWith(data);
                }
            });
        }
    });
};
于 2015-11-04T17:50:47.867 に答える