2013-11-21 33 views
0

我想攔截一個表單提交,將其ajax到一個位置,然後張貼表單。以下是我的失敗評論的嘗試。任何有關我要去哪裏的錯誤的洞察力將一如既往地受到讚賞。截取表格,添加數據,ajax,然後提交。

爲什麼我正在做我在做的事情:我想存儲表單,HTML和所有的完整副本,但仍處理選定的字段作爲典型的表單提交。我的ajax按預期保存了HTML,但是停止了表單提交。除去preventDefault()會導致表單在ajax成功之前提交。

$('#myForm').submit(function(event) { 
    event.preventDefault(); 
    $.ajax({ 
     type: 'POST', 
     url: '../../lib/processCompleted.php', 
     cache: false, 
     dataType: 'text', 
     data: { PracticeID: PracticeID }, 

     success: function (data) { 
      alert('success'); 
      // I would then like to submit the form as usual. 
      //return true; 
      //$('#myForm').submit(); 
     }, 
     error: function() { 
      alert('boo'); 
     } 
    }); 
}); 

乾杯

+0

由於JavaScript是顯然提供給你,你真的應該只是做了「常規」提交阿賈克斯。實際上,這只是對服務器的一次調用,在此期間您可以保存html和數據。這只是一個更好的用戶體驗。 – m59

+0

@ m59是的,這就是我決定要做的。儘管如此,我仍然不幸地得到它的工作,因爲我可以預見未來的情況會需要一個類似的過程。 – jboneca

回答

2
當你調用 $('#myForm').submit();再次提交處理程序將被調用,這將阻止表單提交

。在這種情況下創建ajax請求的無限循環。

嘗試

$('#myForm')[0].submit(); 

演示:Fiddle

+0

我確實在我的控制檯日誌中獲得了'成功',但它前面有「$(...)[0] .submit不是函數」,並且未能提交。 – jboneca

+0

@jboneca你有名稱/編號爲'submit'的元素,如果是這樣,請更改編號/名稱,演示:http://jsfiddle.net/arunpjohny/GxLRq/2/ –

+0

提交按鈕被命名爲submit,但更改那個名字對別的東西沒有影響。不管怎麼說,還是要謝謝你! – jboneca