2013-03-04 109 views
0

我試圖動態創建表單並將其提交到服務器上,其中數據列表爲$(<checkbox>)jQuery動態表單提交兩次

$('<form>').attr("method", "post") 
      .attr('action', '/proceed') 
      .append(data) 
      .submit(); 

服務器發出2個請求的問題:發送數據並且沒有數據 - 只是空的表單。

提交發生一次,我曾嘗試解除提交之前。

+1

你是在現有的'submit'處理程序中,還是在'submit'操作的'click'處調用你的代碼?如果是這樣,你需要在你做之前取消提交('return false;'從事件處理程序中)。 – Matt 2013-03-04 10:54:59

+0

我有一個

回答

0

<button />的默認操作是在單擊它時提交表單。

正如我在我的評論中提到的,您需要在創建自己的作品之前取消該提交;

$('.activateEventButton').on('click', function (e) { 
    activateEvents(); 

    e.preventDefault(); // prevent the submission. 
}); 
+0

這就是這一點,但它不起作用。 奇怪的是,第二次提交來自GET,但第一次通過POST GET請求來空,沒有任何數據,POST是正常的數據 – ekitru 2013-03-04 11:00:52

+0

@ekitru:你確定'GET'是一個第二次提交,而不是在收到POST後重定向? POST是否包含正確的表單信息?你有*使用這種形式的任何*其他代碼? (和任何插件?) – Matt 2013-03-04 11:02:59

+0

不,我沒有,但在瀏覽器中,我看到第一次POST頁面後重定向正確,然後GET請求到服務器沒有數據。 但我不確定,爲什麼在submit()頁面重定向後單獨地 – ekitru 2013-03-04 11:06:07