提交处理程序缺少表单数据的 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】:
rules
和 submitHandler
属性之间缺少逗号。
$(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 form插件的使用--用 formData 参数校验表单,验证后提交(简单验证).