2014-01-12 86 views
0

我已經定義了3個javascript文件和幾個函數,並且我在每個函數中都有事件處理程序onsubmit(基本上是相同的結構)問題是,當我在主體部分的底部插入這3個文件時如文件路徑,其中只有2被加載,而第三個是沒有的,我不明白爲什麼... 這是代碼:加載多個Javascript文件onsubmit

function init() { 
    'use strict'; 

    // Listen to see whether the form has been submitted: 
    //get a handle to my form 
    var demogrForm = document.getElementById("Demographics"); 
    demogrForm.onsubmit = validateInputs; 

    console.log("submit"); 
} // End of init() function. 

window.onload = init; 
console.log("init"); 

本質,呼籲每一個「的onsubmit」的功能是不同的3個文件,但處理這個調用的代碼是一樣的...你有什麼想法嗎?

+0

對不起,由於某種原因,沒有通過。這是代碼:\t function init(){ \t'use strict'; //收聽表單是否已提交: \t //獲取我的表單的句柄 var demogrForm = document.getElementById(「Demographics」); \t demogrForm.onsubmit = validateInputs; \t console.log(「submit」); \t \t \t} //結束init()函數。 \t \t window.onload = init; \t \t console.log(「init」); – Diego

+0

您是否在所有三個JavaScript文件中都有此代碼,只有elementId不同? – tzunghaor

+0

好吧,我解決了它,所以這裏是我所做的:在最後一個javascript文件(在我的情況下是第三個文件)中,您必須調用以前文件中定義的函數。類似於 //此處的任何代碼} // function_3的結尾(如在第三個文件中定義的) return function_1(); //在第一個javascript文件中定義return function_2(); //定義在第二個javascript文件中......等等。 document.getElementById(「FormName」)= function_3; }; 這至少適用於我:) – Diego

回答

0

嘗試使用jQuery $(function(){});或者改變你的window.onload。它應該是這樣的:

window.onload=function(){ 
    console.log("init"); 
    // Listen to see whether the form has been submitted: 
    //get a handle to my form 
    var demogrForm = document.getElementById("Demographics"); 
    demogrForm.onsubmit = validateInputs; 

    console.log("submit"); 
}; 

或使用jQuery:

$(function(){ 
    console.log("init"); 
    // Listen to see whether the form has been submitted: 
    //get a handle to my form 
    var demogrForm = document.getElementById("Demographics"); 
    demogrForm.onsubmit = validateInputs; 

    console.log("submit"); 
}); 
+0

mmhh ...避免init()函數沒有讓它...和我應該調用window.onload = function()函數?除此之外,我正在學習JavaScript,所以如果可能的話,我會在這個階段避免使用框架 – Diego