在表单validate的submithandler中,ajax获取Uncaught TypeError:form.serialize不是一个函数

时间:2017-09-06 17:42:41

标签: jquery forms jquery-validate

在控制台中获取此错误Uncaught TypeError:form.serialize不是函数。如何在表单validate submithandler的ajax中修复此错误?

$('#form').validate({
                errorClass:  'fieldError',
                onkeyup:     false,
                onblur:      false,
                errorElement:'label',

                submitHandler: function(form) {
                    $.ajax({
                        url: form.action,
                        type: form.method,
                        data: form.serialize(),
                        success: function(response) {
                            if (response == false)
                            {alert('could not submit!')}
                        }

                    });

                }
            });

1 个答案:

答案 0 :(得分:2)

根据jQuery validate插件的documentationsubmitHandler回调将本机形式作为唯一参数。

本机表单没有serialize()方法,因为它是一个jQuery方法 您必须在$()

中包装原生表单
submitHandler: function(form) {

    var $form = $(form);

    $.ajax({
        url     : $form.attr('action'),
        type    : $form.attr('method'),
        data    : $form.serialize(),
        success : function(response) {
            if (response == false) {
                alert('could not submit!')}
            }
        });
    });
});