2016-08-03 73 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

只是一个错字...更新.. –