2010-01-15 123 views
1

我想使用jQuery验证插件,然后通过ajax提交我的表单,但我错过了一些东西。任何人有任何见解?jQuery ajax提交验证

$('#theForm').validate({ 
    focusInvalid: false, 
    invalidHandler: function() { 
     $('#message').addClass('error').html('Please fill out all necessary fields.').slideDown(); 
    }, 
    submitHandler: function (form) { 
     $('#message').removeClass('error').html('Saving info.').slideDown(); 
     $.post(form.action, $(form).serialize(), function() { 
      $('#message').removeClass('error').html('Saving complete.').slideUp(3500); 
     }); 
    } 
}); 

回答

0

你传递

$(形式).serialize()

,其应在形式传递键/值对.post的$第二个参数的

{名字: “约翰”,时间: “2:00”}

其中as serialize()返回查询字符串。尝试使用返回JSON数据结构的serializeArray()。如果这不起作用,您可能需要手动从表单中检索每个值,并将它们作为键/值对传递给$ .post。

+0

$ .post()可以将查询字符串作为第二个参数。来自http://api.jquery.com/jQuery.post/的示例: $ .post(“test.php”,$(“#testform”)。serialize()); 这不是问题。 – 2010-01-16 19:30:45

0

要通过AJAX提交表格,您应该考虑Malsup's Form Plugins。它提供了一种更好的方式来处理各种表单字段的类型。要使其与jQuery验证插件一起使用,请参阅this example