I was creating a form validator for a client and ran into this weird error only in Internet Explorer (Explorer) 7/8....
'return' outside of function, line 1, char 1
Of course, there was no code whatsoever on line 1. It was a simple commented statement. And there was nothing wring with it in any way. So I knew it was just a debug misdirection.
I have been pulling my hair out to understand what could be wrong here...
I have already ruled out the obvious: return statements in a loop, too many return statements in a single function, and any returns actually outside of a legitimate function definition.
What is the reason for this?
The problem was that I was using a return statement to override the default behavior for my form and it was assigned to a property, but it was not placed inside an anonymous function!
I had a form element that was set up like this:
<form name="formname" onSubmit="javascript:validateForm(this);" action="javascript:return false;" method="post" enctype="multipart/form-data">
All I needed to change was the action property to this:
… action="javascript:function(){return false};"
It now works flawlessly!
Sometimes, when you're writing back end systems where the user is expected to have JavaScript enabled in order to use the system, I feel it's fine to use javascript: href
tags, since use of the system requires JavaScript anyway.
In this case, there is nothing wrong with using href="javascript:"
, is there?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With