2013-02-20 231 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