Welcome to WebmasterWorld Guest from 50.17.16.177

Forum Moderators: open

Message Too Old, No Replies

Javascript in hidden form field help

     
9:48 pm on Oct 2, 2007 (gmt 0)

New User

10+ Year Member

joined:Feb 24, 2005
posts:21
votes: 0


I've got some JS that gets the page title like so:
document.write (document.title)

works fine.

I've got a form with a hidden field like so:
<input type="hidden" name="linktitle" value="HELP"></form>

How can I get my JS to execute in the value part (where it says HELP)? I've tried numerous methods and none have worked. Any ideas? Thanks!

6:39 am on Oct 3, 2007 (gmt 0)

Junior Member

10+ Year Member

joined:Dec 7, 2004
posts:130
votes: 0


Hi,

you can't execute the value of the hidden form field, but you can reach it via:

[window.]document.formName.elementName.value
[window.]document.forms[i].elements[i].value
[window.]document.getElementById("elementID").value

HTH, AA

11:16 am on Oct 3, 2007 (gmt 0)

New User

10+ Year Member

joined:Feb 24, 2005
posts:21
votes: 0


Thanks for your help. Could you clarify a bit for me on how to implement that with form?
12:24 pm on Oct 3, 2007 (gmt 0)

New User

10+ Year Member

joined:Feb 24, 2005
posts:21
votes: 0


Okay, I see now what you were saying. So I tried this

document.formtwo.linktitle.value = 'document.title';

formtwo is the name of the form, linktitle is the name of the hidden field. However, the returned value is then document.title and not the actual title... I tried it without quotes and got nothing. I also tried:

document.write(document.formtwo.linktitle.value+document.title);

an it returned nothing. What am I missing?

1:13 pm on Oct 3, 2007 (gmt 0)

Preferred Member

10+ Year Member

joined:July 5, 2005
posts:352
votes: 0


I'm trying my best to understand what it is you actually want to accomplish but I just don't get it. Something like this? Why would you want to do that?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> This is my title </title>
</head>
<body>

<form name="myForm">
<input type="hidden" name="linktitle" value="HELP" />
</form>

<script>
document.myForm.linktitle.value = document.title;
alert(document.myForm.linktitle.value);
</script>

</body>
</html>

1:24 pm on Oct 3, 2007 (gmt 0)

New User

10+ Year Member

joined:Feb 24, 2005
posts:21
votes: 0


I need to get the html page title into the value of a hidden form field which I then get via a POST when the form is submitted. Seems simple but I just can't get it to work.
2:21 pm on Oct 3, 2007 (gmt 0)

Preferred Member

10+ Year Member

joined:July 5, 2005
posts:352
votes: 0


Did you try my example? It places the title in the hidden field.
2:32 pm on Oct 3, 2007 (gmt 0)

New User

10+ Year Member

joined:Feb 24, 2005
posts:21
votes: 0


Yes, I tried it. I get a return of UNDEFINED.
4:20 pm on Oct 3, 2007 (gmt 0)

Senior Member from US 

WebmasterWorld Senior Member fotiman is a WebmasterWorld Top Contributor of All Time 10+ Year Member Top Contributors Of The Month

joined:Oct 17, 2005
posts:4966
votes: 10


1. If this is critical, then you should not be relying on JavaScript to populate your hidden field. If the user has JavaScript disabled, you won't get a value.

2. If you're still going to use JavaScript, you need to wait for the window to finish loading, as the document.title might not be available until the DOM is ready.

Try this:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset:utf-8">
<title>This is my title</title>
</head>
<body>
<form name="myForm">
<div>
<input type="hidden" id="linktitle" name="linktitle" value="" />
</div>
</form>
<script type="text/javascript">
window.onload = function() {
document.getElementById('linktitle').value = document.title;
};
</script>
</body>
</html>
4:56 pm on Oct 3, 2007 (gmt 0)

New User

10+ Year Member

joined:Feb 24, 2005
posts:21
votes: 0


The window has loaded. Then the user presses the form button. The above didn't work...

EDIT- after some playing around with it (where to place it) it is working now. THANKS!