2010-01-15 194 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