-1

当表单验证通过时,我想调用一些 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/

4

3 回答 3

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/

于 2013-09-17T13:32:49.773 回答
0

好吧,所以我必须使用:

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

为什么这不起作用:

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

于 2013-09-17T13:19:13.187 回答
0

rules您在和submitHandler属性之间缺少逗号。

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

http://jsfiddle.net/ce29u/

于 2013-09-17T13:20:33.983 回答