当函数位于外部javascript文件中时,onclick事件无效

时间:2016-08-03 06:43:13

标签: javascript jquery asp.net

在来到这里之前,我尝试了stackoverflow中列出的几个链接,但没有一个帮助我解决这个问题或者可能是我做错了。

我的aspx中有一个输入按钮,并且 serverclick 事件以及 onclick ,客户端和服务器方法都被正确调用,我只是在遇到问题时' onclick'函数在外部文件中(它在同一目录中)。

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

注意:

  

所有其他控件都在外部js中工作,除此之外。

     

内联函数工作正常,但在外部函数中移动时则不行。

     

我甚至尝试过window.onload(),但它在pageload期间触发了这个函数,这不是我需要的。

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");
  });

3 个答案:

答案 0 :(得分:1)

请移除$(document).ready(function () {周围的function FormValidate()以使其成为全局功能。现在将它放在ready处理程序中,你就可以使它成为一个本地范围的函数。所以你的 external.js 应该是:

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

答案 1 :(得分:0)

如果用外部文件

编写,则需要将其定义为全局函数
 function FormValidate() {
    alert("Validated");
  };

删除它周围的.ready(function...)将使其成为全局的,将在html文件中调用。

答案 2 :(得分:0)

您正在限制功能范围,请将其排除在.ready(function...)外 这将使您可以在全球范围内使用该功能