2014-02-15 75 views
0

我看到有兩種方法用於通過ajax提交表單。哪一個是有效的?如果第一個是,它怎麼沒有使用$ ajax?使用Ajax提交表單 - 這是正確的方法嗎?

方法1:

$(form).on("submit", function (event) { 
     event.preventDefault(); 
     $(this).serialize(); 
    }); 

方法2:

$(function() { 
$(form).on("submit", function (event) { 
    $.ajax({ 
     type: "POST", 
     url: "pathscript.php", 
     data: $(this).serialize() 
    }).done(function() { 

    }).fail(function() { 

    }); 
    event.preventDefault(); // Prevent the form from submitting via the browser. 
    }); 
}) 
+0

謝謝刪除! – Thomasmkov

+0

不錯,嘗試在ajax之前將表單數據保存在'var formData'中。 (例如'var formData = $(this).serialize();'然後用'data:formData'做ajax) –

回答

2

方法1不發送任何請求和形式將不被提交。方法2是你應該這樣做的方式。

$(this).serialize(); 

這將只是序列化你的內容。

所以作爲最終結論方法是正確的方法,只有它是在做AJAX表單提交。

+0

如果我們從方法1中刪除event.preventDefault(),即使它贏了; t submit? – Thomasmkov

+0

沒有'preventDefault'表單將被提交 – Igor

+0

好的,在那種情況下哪種方法是正確的? – Thomasmkov