Javascript 我犯了这个错误![';返回函数外的';语句]

Javascript 我犯了这个错误![';返回函数外的';语句],javascript,internet-explorer-7,Javascript,Internet Explorer 7,我正在为一个客户端创建一个表单验证程序,只在InternetExplorer(Explorer)7/8中遇到了这个奇怪的错误 函数第1行字符1外的“return” 当然,第1行没有任何代码。这是一个简单的注释语句。而且它没有任何扭曲的地方。所以我知道这只是一个调试错误 我一直在想方设法弄明白这里可能出了什么问题 我已经排除了显而易见的情况:循环中的return语句,单个函数中的return语句过多,以及任何实际超出合法函数定义的返回 这是什么原因?问题在于我使用了一个return语句来覆盖表单的

我正在为一个客户端创建一个表单验证程序,只在InternetExplorer(Explorer)7/8中遇到了这个奇怪的错误

函数第1行字符1外的“return”

当然,第1行没有任何代码。这是一个简单的注释语句。而且它没有任何扭曲的地方。所以我知道这只是一个调试错误

我一直在想方设法弄明白这里可能出了什么问题

我已经排除了显而易见的情况:循环中的return语句,单个函数中的return语句过多,以及任何实际超出合法函数定义的返回


这是什么原因?

问题在于我使用了一个return语句来覆盖表单的默认行为,并将其分配给了一个属性,但它没有放在匿名函数中

我有一个表单元素,设置如下:

<form name="formname" onSubmit="javascript:validateForm(this);" action="javascript:return false;" method="post" enctype="multipart/form-data">

它现在工作完美无瑕

有时,当您编写后端系统时,希望用户启用JavaScript以使用系统,我觉得使用
JavaScript:href
标记很好,因为使用系统无论如何都需要JavaScript


在这种情况下,使用
href=“javascript:
,没有问题吗?

我在使用ModalPopupXtender时遇到此错误。我已指定以下属性:

OnOkScript="return false;"
设置
OkOkScript=”“
为我解决了这个问题。

检查以确保您没有在函数参数中写入“var”


在许多语言中,必须指定参数的类型。在JavaScript中,您不必这样做。

这通常意味着它所说的正是——在任何函数之外都有一个return语句。示例代码会有所帮助…也许一些源代码会帮助我们帮助您?一个代码示例会有所帮助。错误消息不足以识别代码中的错误。
javascript:
url是邪恶的;切勿使用它们,尤其是用于
操作
。如果对于非JS用户来说,没有什么有用的地方可以指向表单,那么您可以给它一个无用的操作,比如
,并使用
onsubmit=“return false”
停止提交表单(事件处理程序上不需要
javascript:
前缀,它不是URL;包括它没有任何意义)。或者,如果您不需要将纯脚本表单字段与任何地方关联以提交它们,您可以省略表单标记。对不起,在某些浏览器中,哈希“#”会生成额外的HTTP请求,这应该避免。尤其是因为谷歌对页面加载速度感到恐慌。此信息是为了让人们知道,在函数之外的任何位置使用return都会导致IE抛出错误。无论何时使用“return”,无论它位于哪个属性中,都需要将其包含在函数中:匿名或其他。通过返回false,可以阻止浏览器执行其默认行为。它适用于所有浏览器。包含“javascript:”部分只是一种好的做法:它确保正确的代码类型。@bobince是正确的,不要使用
javascript:
。改为使用
onsubmit=“return validateForm(this);”
validateForm
只需返回false即可阻止表单提交
onsubmit
已经需要javascript,所以不需要
javascript:
。那么,为什么不将动作留空呢?不需要回答。exoboy的回答有点误导。之所以
action=“javascript:function(){return false};”“
阻止提交表单,并不是因为
return false
位。您可以使用
javascript:function(){return true}实现相同的阻塞效果
javascript:function(){return'pants}
javascript:var foobar
javascript:void(0)。我只是想指出这段代码有点误导。它阻止表单提交是因为javascript:code什么也不做,什么也不返回,而不是因为它声明了一个函数,如果它运行的话会返回false。它不是(运行))。代码没有误导性。它适用于任何可能不允许空功能的浏览器,无论是在将来还是将来。它被设计为健壮的,而不是尽可能最小的代码…也许你应该详细说明省略
var
如何帮助OP的
返回。
OnOkScript="return false;"