423,311 Members | 1,224 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 423,311 IT Pros & Developers. It's quick & easy.

Recieving Error "'theForm' is undefined" In ASP.NET Application Even With The Line "var theForm = document.forms['form1'];"

P: n/a
I have an ASP.NET application which is giving the following JavaScript
error:

'theForm' is undefined

However, when I do a View Source one of the <scriptelements is as follows:

<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>

You will notice that the first line of code in this script element creates
and assigns a value to a variable named "theForm". This code was generated
by ASP.NET, so it SHOULD be correct, and it looks to me like 'theForm' is
defined. I have seen other people post this error before also, but I can't
remember what they said they did to fix it. Any ideas? Thanks.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/
Jun 10 '07 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Nathan Sokalski said the following on 6/9/2007 8:57 PM:
I have an ASP.NET application which is giving the following JavaScript
error:

'theForm' is undefined

However, when I do a View Source one of the <scriptelements is as follows:

<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>

You will notice that the first line of code in this script element creates
and assigns a value to a variable named "theForm". This code was generated
by ASP.NET, so it SHOULD be correct,
But it isn't "correct". The error is caused because the script block
will be before the form element appears in the page and so it will be
undefined because it doesn't exist yet.
and it looks to me like 'theForm' is defined.
If, and only if, a form with the name/id attribute of "form1" exists at
the time that the script executes.
I have seen other people post this error before also, but I can't
remember what they said they did to fix it. Any ideas? Thanks.
1) Make sure the script block appears after the element in the page.
2) Better, is to include it in the postback function. Failing that, wrap
it in a function and call it via window.onload

The entire if part that is not in a function is a bad way of writing a
script though. I would be interested to see a scenario where theForm
didn't get defined on the first line but got defined on the second.
Meaning, a browser that didn't support document.forms['form1'] but did
support document.form1

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jun 10 '07 #2

P: n/a
Thank you for that information, it will definitely be useful at some point.
However, it brings me to another problem:

Because I did not specifically request that this script be added (it gets
added automatically, my code does not include anything that says where to
put the script or even that it should be included at all), what should I do
to fix the problem? Thanks.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/

"Randy Webb" <Hi************@aol.comwrote in message
news:yb********************@telcove.net...
Nathan Sokalski said the following on 6/9/2007 8:57 PM:
>I have an ASP.NET application which is giving the following JavaScript
error:

'theForm' is undefined

However, when I do a View Source one of the <scriptelements is as
follows:

<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>

You will notice that the first line of code in this script element
creates and assigns a value to a variable named "theForm". This code was
generated by ASP.NET, so it SHOULD be correct,

But it isn't "correct". The error is caused because the script block will
be before the form element appears in the page and so it will be undefined
because it doesn't exist yet.
>and it looks to me like 'theForm' is defined.

If, and only if, a form with the name/id attribute of "form1" exists at
the time that the script executes.
>I have seen other people post this error before also, but I can't
remember what they said they did to fix it. Any ideas? Thanks.

1) Make sure the script block appears after the element in the page.
2) Better, is to include it in the postback function. Failing that, wrap
it in a function and call it via window.onload

The entire if part that is not in a function is a bad way of writing a
script though. I would be interested to see a scenario where theForm
didn't get defined on the first line but got defined on the second.
Meaning, a browser that didn't support document.forms['form1'] but did
support document.form1

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices -
http://www.JavascriptToolbox.com/bestpractices/

Jun 10 '07 #3

P: n/a
Nathan Sokalski said the following on 6/9/2007 9:55 PM:
Thank you for that information, it will definitely be useful at some point.
However, it brings me to another problem:

Because I did not specifically request that this script be added (it gets
added automatically, my code does not include anything that says where to
put the script or even that it should be included at all), what should I do
to fix the problem? Thanks.
Stop using ASP.NET :)

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jun 10 '07 #4

P: n/a
Make sure you have something like
<form id="form1" runat="server">
on your form. You didn't rename the form1 did you?

--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net
"Nathan Sokalski" <nj********@hotmail.comwrote in message
news:eQ**************@TK2MSFTNGP05.phx.gbl...
>I have an ASP.NET application which is giving the following JavaScript
error:

'theForm' is undefined

However, when I do a View Source one of the <scriptelements is as
follows:

<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>

You will notice that the first line of code in this script element creates
and assigns a value to a variable named "theForm". This code was generated
by ASP.NET, so it SHOULD be correct, and it looks to me like 'theForm' is
defined. I have seen other people post this error before also, but I can't
remember what they said they did to fix it. Any ideas? Thanks.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/

Jun 10 '07 #5

P: n/a
No, I did not rename my the form. The exact line of code copy & pasted from
Visual Studio 2005 is:

<form id="form1" runat="server">

--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/

"Eliyahu Goldin" <RE**************************@mMvVpPsS.orgwrote in
message news:%2****************@TK2MSFTNGP03.phx.gbl...
Make sure you have something like
<form id="form1" runat="server">
on your form. You didn't rename the form1 did you?

--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net
"Nathan Sokalski" <nj********@hotmail.comwrote in message
news:eQ**************@TK2MSFTNGP05.phx.gbl...
>>I have an ASP.NET application which is giving the following JavaScript
error:

'theForm' is undefined

However, when I do a View Source one of the <scriptelements is as
follows:

<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>

You will notice that the first line of code in this script element
creates and assigns a value to a variable named "theForm". This code was
generated by ASP.NET, so it SHOULD be correct, and it looks to me like
'theForm' is defined. I have seen other people post this error before
also, but I can't remember what they said they did to fix it. Any ideas?
Thanks.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/


Jun 10 '07 #6

This discussion thread is closed

Replies have been disabled for this discussion.