2016-08-03 26 views
2

在來這裏之前,我嘗試了幾個在stackoverflow中列出的鏈接,但沒有一個幫助我解決了這個問題,或者可能是我做錯了什麼。當功能在外部JavaScript文件時,onclick事件不起作用

我有一個輸入按鈕在我的aspx,並有serverclick事件以及的onclick,客戶端和服務器的方法被調用正確,我只有面對問題的時候了「的onclick」的功能是在外部文件(它在同一個目錄中)。

我甚至引用了aspx中的js文件。

注:

所有其他控件外部JS工作,除了這一點。

內聯函數可以正常工作,但在外部函數中移動時不會。

我什至試過window.onload(),但它觸發頁面加載期間,這不是我所需要的功能。

ASPX

<script type="text/javascript" src="external.js"></script> 

輸入按鈕。

<input class="data" type="submit" name="cmdSubmit" value="Run Report" onclick="return FormValidate();" 
onserverclick="RunReport" runat="server" id="Submit1" /> 

external.js

$(document).ready(function() { 
function FormValidate() { 
    alert("Validated"); 
    }); 
+0

入住控制檯如果有一些錯誤 –

+3

刪除'$(文件)。就緒(函數(){'在你的功能,使其整體功能 – vijayP

+0

。哦,我不知道,爲什麼我變得如此笨拙!! @ vijay感謝你發現我的錯誤 – Manjuboyz

回答

1

請刪除您的function FormValidate()附近的$(document).ready(function() {以使其成爲全局功能。現在通過將它放在ready處理程序中,您將它作爲本地作用域函數。所以,你的external.js應該是:

function FormValidate() { 
    alert("Validated"); 
    } 
0

你需要將它定義爲全局函數,如果寫在外部文件

function FormValidate() { 
    alert("Validated"); 
    }; 

刪除它周圍.ready(function...)將使全球這將在html文件中調用。

+0

這實際上會拋出由於*)的錯誤; *。 – Robert

+0

只是一個錯字...更新.. –