为什么在外部文件中使用内联代码不起作用,但在使用函数工作时

时间:2013-03-30 12:07:43

标签: javascript

我知道问题的标题可能无法理解,但我会解释一下。

每个人都知道我们可以使用以下任何一种方式。

实施例(1)

document.getElementById('idofelement').onsubmit = function() {
   alert('Go ahead');
   return false;
}

实施例(2)

function DisplayMsg(){
   alert('Go ahead');
   return false;
}

// and in HTML
<form action="file.php" method="post" onsubmit="return DisplayMsg();">

我的问题(1):
两种方式或两个例子之间有什么区别

我的问题(2):
为什么example (1)无法在外部JavaScript文件中工作,但在目标HTML代码附近插入时,请与我合作。 虽然example (2)可以在任何地方工作,无论是在外部文件中还是在目标HTML代码附近。

1 个答案:

答案 0 :(得分:0)

在加载文档后,应始终调用方法getElementById。因此,正如@JanDvorak所建议的那样,你应该使用jQuery将它包装在$.ready()之内。如果不是,请改用window.onload = function()

顺便说一下:在定义函数后不要忘记分号,IE很容易受到这种语法的攻击