提交处理程序缺少表单数据的 Jquery 验证

Posted

技术标签:

【中文标题】提交处理程序缺少表单数据的 Jquery 验证【英文标题】:Jquery validation on submit-handler missing form data 【发布时间】:2013-09-21 22:49:13 【问题描述】:

我想在表单验证通过时调用一些 ajax。问题是我的表单数据似乎在提交处理程序中丢失了。

这是我的代码:

$(function()

     $("#ticketSubmit").validate(

          rules:

               name:
                    required: true
               
         

         submitHandler:function(form)

               var dataString=$(this).serialize();

               alert(dataString);

               return false;

         

     );

);

我已经创建了这个 jsfiddle:

http://jsfiddle.net/rJ5pC/5/

【问题讨论】:

【参考方案1】:

您有许多格式问题,$(this) 在您的示例中不起作用的原因也是因为 $(this) 是对您的验证器而不是表单的引用。你可以使用 this.currentForm 虽然没问题。

$(function () 
    $("#ticketSubmit").validate(
        rules: 
            name: 
                required: true
            
        ,
        submitHandler: function (form) 
            var dataString = $(this.currentForm).serialize();
            alert(dataString);
            return false;
        
    );
);

http://jsfiddle.net/rJ5pC/9/

【讨论】:

【参考方案2】:

好的,所以我必须使用:

var dataString=$(form).serialize();

为什么这不起作用:

var dataString=$(this).serialize();

【讨论】:

$(this) 指的是验证对象,而不是表单。【参考方案3】:

rulessubmitHandler 属性之间缺少逗号。

$(function () 
    $("#ticketSubmit").validate(
        rules: 
            name: 
                required: true
            
        ,
        submitHandler: function (form) 
            var dataString = $(this).serialize();
            alert(dataString);
            return false;
        
    );
    )
;

http://jsfiddle.net/ce29u/

【讨论】:

这是一个错字,我的原始代码有逗号,使用 $(this) 时我没有得到任何表单数据

以上是关于提交处理程序缺少表单数据的 Jquery 验证的主要内容,如果未能解决你的问题,请参考以下文章

在 jquery 验证后提交表单 - 需要通过单击按钮来发布数据

jQuery 提交事件处理程序只工作一次

jQuery:表单提交 - 多个事件处理程序

jQuery form插件的使用--用 formData 参数校验表单,验证后提交(简单验证).

使用 jQuery AJAX 向所需的 PHP POST 请求处理程序提交表单不起作用

jQuery验证不验证或提交