2014-10-05 52 views
0

我有以下JavaScript代碼。Javascript - onsmitmit on pageload

window.onload = function init() { 


var appForm = document.getElementById("application"); 
appForm.onsubmit = validate(); 

}

我想驗證功能,一旦有人點擊了頁面上的「提交」按鈕纔會出現,而且形式只要在頁面加載驗證。我需要改變以解決這個問題? 謝謝!

編輯:謝謝bozdoz,完美的工作。

+2

「驗證」後刪除括號。它正在立即執行該函數,而不是將'onsubmit'設置爲該函數。 – bozdoz 2014-10-05 02:31:47

+0

您正在關聯「window.onload」上的功能。只要窗口完成加載,它就會運行。你需要改變提交按鈕的id和「onclick」動作。 – 2014-10-05 02:34:52

+0

我看不到需要'window.onload = function init(){}'。可以只是'onload = function(){}'。 – PHPglue 2014-10-05 03:05:46

回答

1

您正在執行的函數可能不會返回另一個未執行的函數。 onsubmit必須分配一個函數名稱,它基本上是一個變量或一個匿名函數。更改

appForm.onsubmit = validate(); 

appForm.onsubmit = validate; 

appForm.onsubmit = function(){ 
    validate(arg0, arg1, arg2); // preferred way if your function takes arguments 
} 

注意,當任何JavaScript事件發生時被傳遞給匿名函數或類似validate功能的唯一的事情就是事件對象,所以你必須使用底部的例子來傳遞你自己的參數。