2012-09-19 86 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;”的工作方式类似,只是它不会退出函数。