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

S

Shippy

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....
 
E

Erwin Moller

Shippy said:
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);
}
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
 
E

Erwin Moller

Erwin said:
Shippy said:
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);
}
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>
 
S

Shippy

Your an absolute STAR - many thanks!

completely forgot about "this." being related to that item...
Erwin said:
Shippy said:
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);
}
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top