Connecting Tech Pros Worldwide Forums | Help | Site Map

HELP. this.form does not seem to pass value...

Shippy
Guest
 
Posts: n/a
#1: Jul 19 '06
Please help, this is doing my head in!!!! I am sure it is something
really simple and ovbious that I am missing but for the life of me I
cant find where!!!

I have this function...

<script>
<!--
function update(frm) {
var mon, mon1, form;

form=frm;
mon=frm.mon.value;

alert(mon);
}
-->
</script>


and this calls it...

<form method="post" name="sas002">
<tr>
<td><input name="mon" value="1" size="5"></td<td><input name="tue"
value="1" size="5"></td>
<td><img src="../images/edit.gif" onClick="update(this.form)"></td>
</tr>
</form>

how whenever I run this i get an undefined for the form name...

its as if the this.form is not passing the form name through like it
should be - any suggestions?

need to do it like this as the form is created dynamically....


Erwin Moller
Guest
 
Posts: n/a
#2: Jul 19 '06

re: HELP. this.form does not seem to pass value...


Shippy wrote:
Quote:
Please help, this is doing my head in!!!! I am sure it is something
really simple and ovbious that I am missing but for the life of me I
cant find where!!!
>
I have this function...
>
<script>
<!--
function update(frm) {
var mon, mon1, form;
>
form=frm;
mon=frm.mon.value;
>
alert(mon);
}
-->
</script>
>
>
and this calls it...
>
<form method="post" name="sas002">
<tr>
<td><input name="mon" value="1" size="5"></td<td><input name="tue"
value="1" size="5"></td>
<td><img src="../images/edit.gif" onClick="update(this.form)"></td>
</tr>
</form>
>
how whenever I run this i get an undefined for the form name...
>
its as if the this.form is not passing the form name through like it
should be - any suggestions?
Excactly, and why do you say it should be passing the formname if you use
this.form in an image?

The keyword 'this' should only be used if you knwo WHAT it is refering to.
eg: If you use it in an input type="text" it will reference that
inputelement.
If you use it in an image....

Solution: simple give your form a name, and pass that to the function.
From your function you can use:
function update(formname) {
var formref=document.forms[formname];
var mon=formref.mon.value;
alert(mon);
}
Quote:
>
need to do it like this as the form is created dynamically....

That is no reason to leave the names of the forms out. :-)

Good luck!

Regards,
Erwin Moller

Erwin Moller
Guest
 
Posts: n/a
#3: Jul 19 '06

re: HELP. this.form does not seem to pass value...


Erwin Moller wrote:
Quote:
Shippy wrote:
>
Quote:
>Please help, this is doing my head in!!!! I am sure it is something
>really simple and ovbious that I am missing but for the life of me I
>cant find where!!!
>>
>I have this function...
>>
><script>
><!--
>function update(frm) {
> var mon, mon1, form;
>>
> form=frm;
> mon=frm.mon.value;
>>
> alert(mon);
> }
>-->
></script>
>>
>>
>and this calls it...
>>
><form method="post" name="sas002">
> <tr>
> <td><input name="mon" value="1" size="5"></td<td><input name="tue"
>value="1" size="5"></td>
> <td><img src="../images/edit.gif" onClick="update(this.form)"></td>
> </tr>
></form>
>>
>how whenever I run this i get an undefined for the form name...
>>
>its as if the this.form is not passing the form name through like it
>should be - any suggestions?
>
Excactly, and why do you say it should be passing the formname if you use
this.form in an image?
>
The keyword 'this' should only be used if you knwo WHAT it is refering to.
eg: If you use it in an input type="text" it will reference that
inputelement.
If you use it in an image....
>
Solution: simple give your form a name, and pass that to the function.
From your function you can use:
function update(formname) {
var formref=document.forms[formname];
var mon=formref.mon.value;
alert(mon);
}
>
Quote:
>>
>need to do it like this as the form is created dynamically....
>
>
That is no reason to leave the names of the forms out. :-)
Oops, my bad.
You DID name the form already, so if you want to use it in your
image-onClick-handler you can do this:
<td><img src="../images/edit.gif" onClick="update('sas002');"></td>


Shippy
Guest
 
Posts: n/a
#4: Jul 19 '06

re: HELP. this.form does not seem to pass value...


Your an absolute STAR - many thanks!

completely forgot about "this." being related to that item...
Erwin Moller wrote:
Quote:
Shippy wrote:
>
Quote:
Please help, this is doing my head in!!!! I am sure it is something
really simple and ovbious that I am missing but for the life of me I
cant find where!!!

I have this function...

<script>
<!--
function update(frm) {
var mon, mon1, form;

form=frm;
mon=frm.mon.value;

alert(mon);
}
-->
</script>


and this calls it...

<form method="post" name="sas002">
<tr>
<td><input name="mon" value="1" size="5"></td<td><input name="tue"
value="1" size="5"></td>
<td><img src="../images/edit.gif" onClick="update(this.form)"></td>
</tr>
</form>

how whenever I run this i get an undefined for the form name...

its as if the this.form is not passing the form name through like it
should be - any suggestions?
>
Excactly, and why do you say it should be passing the formname if you use
this.form in an image?
>
The keyword 'this' should only be used if you knwo WHAT it is refering to.
eg: If you use it in an input type="text" it will reference that
inputelement.
If you use it in an image....
>
Solution: simple give your form a name, and pass that to the function.
From your function you can use:
function update(formname) {
var formref=document.forms[formname];
var mon=formref.mon.value;
alert(mon);
}
>
Quote:

need to do it like this as the form is created dynamically....
>
>
That is no reason to leave the names of the forms out. :-)
>
Good luck!
>
Regards,
Erwin Moller
Closed Thread