.ajaxform 在验证 submitHandler 中不起作用?

Posted

技术标签:

【中文标题】.ajaxform 在验证 submitHandler 中不起作用?【英文标题】:.ajaxform not working inside the validation submitHandler? 【发布时间】:2012-09-05 02:17:05 【问题描述】:

我使用 jquery 验证插件在提交前验证表单 在 submitHandler 我使用 ajax 请求用 ajax 发布表单 在我使用 .ajax 发送请求之前,但现在表单有图像并且很难 通过正常的ajax请求序列化文件元素,因此我使用了这个插件 http://www.malsup.com/jquery/form/

现在使用插件后,ajax 请求无法正常工作,不知道为什么 这是第一个使用普通 ajax 调用的示例

$(document).ready(function()
    $("#categoryForm").validate(
    submitHandler: function() 
            $.ajax(
                type:'POST', 
                url: 'actions/add-category.php', 
                data: $("#categoryForm").serialize(), 
                success: function(response) 
                     $('#status').html(response);
                    
                );

        return false;
    
    );
);

使用插件后的这个

$(document).ready(function()
        $("#categoryForm").validate(
        submitHandler: function() 
                $('#categoryForm').ajaxForm(function() 
                alert('the form was successfully processed');
            );

            return false;
        
        );
    );

第二个不工作

【问题讨论】:

【参考方案1】:

尝试反转函数:

jQuery('#form_id').ajaxForm(
    beforeSubmit: function() 
        jQuery("#form_id").validate(
            rules: 
                first_name: "required",
                last_name: "required"
            ,
            messages: 
                first_name: "Required",
                last_name: "Required"
            
        );
        return jQuery('#form_id').valid();
    ,
    success: function(resp) 
        jQuery('#resp').html(resp).fadeIn('fast');
    
);

#resp 是接收从您的#form_id 发布的文件生成的 HTML 的 ID

【讨论】:

以上是关于.ajaxform 在验证 submitHandler 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery插件Validate验证提交表单submitHandler更改错误信息显示的位置requiredValidator内置验证方式表validate ()的可选项汇总

Jquery validate(submitHandler函数)验证通过发送Ajax

防止表单在 jQuery Validate 插件的 submitHandler 函数中提交

在表单验证的 submithandler ajax 中得到 Uncaught TypeError: form.serialize is not a function

在 jquery submitHandler 中从 input=file 传递值 [重复]

AJAXform表单验证