2013-02-20 196 views
0

我在这里得到了这个代码,它在单击提交时执行函数validate()。该功能改变了页面中的一些文字。但我看不到效果,因为提交后页面自动刷新:如何防止提交后刷新?

<form name="myForm" onsubmit="validate(); return false;"> 
    Age: <input type="text" name="age" /> 
    Height (meters): <input type="text" name="height" /> 
    Weight (kilograms): <input type="text" name="weight" /> 
    <input type="submit" value="Submit"> 
</form> 

如何防止页面在每次提交后重新加载?

+5

最大的可能是你在你的'validate'功能错误。检查控制台。 – VisioN 2013-02-20 08:35:13

+0

nope。根本没有错误。当我使用Chrome的开发者控制台时,代码完美无瑕。 – 2013-02-20 08:37:32

+0

然后它应该很好地工作:http://jsfiddle.net/sFKch/。 – VisioN 2013-02-20 08:39:46

回答

0

您可以使用测试按钮表单

<input type="button" value="Test button" onclick="validate();"> 

一旦解决了里面,删除按钮。

您还可以使用Firebug(或等价物)在JavaScript代码中添加断点。

0

由表单触发的提交事件会自动启动表单操作。如果没有声明表单动作,则刷新页面。您需要防止在验证之前发生此默认操作,然后在通过验证后提交数据。

preventDefault()添加到您的验证码。

0

确保您添加返回false;在你的validate()函数中。

这将阻止表单被提交。

例子:

function validate() { 
    //Validation code goes here 
    return false; 
} 
+0

否,除非使用'return validate()',否则不会。在这种情况下不需要,因为内联事件处理程序 – mplungjan 2013-02-20 08:41:57

+0

中有一个返回false,谢谢!我把表单变成了:'onsubmit =“return validate();”'并且在validate()中添加了一个'return false;'。它现在有效! :D – 2013-02-20 08:53:07

+0

它也应该在提交中使用'; return false'' – mplungjan 2013-02-20 08:58:57