2012-09-19 60 views
1

我有一個簡單的表單觸發ajax調用,但只要提交按鈕被單擊,表單將重置並清除所有條目。你知道如何防止這種情況嗎?我想要控制何時清除表單。代碼如下。我懷疑我需要放棄提交功能並檢測按鈕上的「單擊」事件。如何停止表單提交時重置

JQuery的

$("#Formid").submit(function(){loadAjax();}); 

HTML

<form id="Formid" method="put"> 
     Name<BR/> 
     <input type="text" name="name"/><BR/><BR/> 
     Node Id<BR/> 
     <input type="text" name="node_id"/><BR/><BR/> 
     Type<BR/> 
     <input type="text" name="type"/><BR/><BR/> 
     Parent<BR/> 
     <input type="text" name="parent_id"/><BR/><BR/> 
     Longitude<BR/> 
     <input type="text" name="longitude"/><BR/><BR/> 
     Latitude<BR/> 
     <input type="text" name="latitude"/><BR/><BR/>   
     Description<BR/>   
     <textarea name="description" rows="5" cols="40">Insert description here</textarea><BR/><BR/>   
     <input type="submit" value="Add Node"/> 

    </form> 

回答

5

您可以使用事件對象的方法preventDefault

$("#Formid").submit(function(event){ 
    loadAjax(); 
    event.preventDefault() 
}) 
0

您可以使用e.preventDefault()return false;一個jQuery事件處理程序中:

$("#Formid").submit(function (e) { 
    loadAjax(); 
    e.preventDefault(); // or return false; 
}); 

e.preventDefault()將防止發生的歷史默認情況下, e.stopPropagation()將阻止冒起來的事件並返回 錯誤會同時做到這一點。

+1

'stopPropagation'應該沒有效果。表單提交是因爲其提交方法已被調用或激活,可以通過多種方式完成(輸入類型提交,按鈕類型提交,在輸入中按下Enter鍵,直接調用輸入法等等)。它不會因冒泡點擊事件而提交,除非爲此設置了偵聽器並調用該窗體的提交方法。 – RobG

0

或者,您可以使用event.returnValue = false;

$("#Formid").submit(function(e) { 
    loadAjax(); 
    e.returnValue = false; 
}); 

這與「return false;」的工作方式類似,只是它不會退出函數。