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

时间:2013-09-17 13:12:17

标签: jquery validation submit

我希望在传递表单验证时调用一些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/

3 个答案:

答案 0 :(得分:3)

您遇到了许多格式问题,而且$(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/

答案 1 :(得分:0)

好的,所以我必须使用:

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

为什么这不起作用:

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

答案 2 :(得分:0)

您遗漏了rulessubmitHandler属性之间的逗号。

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

http://jsfiddle.net/ce29u/