我想使用jQuery form validation plugin验证表单,但我无法使用验证处理程序发送自定义Ajax请求:
$('#headForm').validate(
{
//submitHandler: submit,
errorClass: "invalid",
rules: {
title: {maxlength: 50}
},
messages: {
title: {maxlength: 'Max 50 chars'}
}
});
我的原始提交处理程序如下所示:
$('#headForm').submit(function(event)
{
event.preventDefault();
$.ajax(
{
type: "PUT",
url: "/target",
data: $('#headForm').serialize(),
dataType: "json",
success: function()
{
alert("ok");
}
});
});
我尝试将其移动到通常的函数并在验证块中将其注册为submitHandler
,但它不起作用。
function submit() { // impossible to pass the event!
$.ajax( ...
}
如何将jQuery验证与自定义Ajax请求结合使用?
可能的表单验证错误: 我已经删除了验证码,看看提交是否有效。除非我删除了jQuery表单验证库的链接,否则它没有!所以似乎验证破坏了jQuery核心。我是否已经说过我喜欢动态打字......; - )
答案 0 :(得分:0)
您是否在submit()
函数中定义了一个参数?
(我猜你没有,这可能就是为什么它不起作用)
我认为你只需要指定'form'参数,然后在该参数上调用serialize()
,如下所示:
submitHandler: function(form) {
$.ajax({
type: "PUT",
url: "/target",
data: form.serialize(),
dataType: "json",
success: function()
{
alert('ok');
}
});
}
请参阅文档:http://docs.jquery.com/Plugins/Validation/validate#options