changing the value of a hidden field

R

Ryan

I have a hidden field as such:

<INPUT TYPE=\"hidden\" name=xmlfield >

I have a button that i want to use to call a function to change the value:

<INPUT TYPE=submit VALUE="Display XML" Name="displayXML"
OnClick="ChangeFieldName('XML')">

here is the function

function ChangeFieldName (val) {
document.FieldName.xmlfield.value=val;};

nothing happens? The value is not set?
 
D

Dag Sunde

Ryan said:
I have a hidden field as such:

<INPUT TYPE=\"hidden\" name=xmlfield >

I have a button that i want to use to call a function to change the value:

<INPUT TYPE=submit VALUE="Display XML" Name="displayXML"
OnClick="ChangeFieldName('XML')">

here is the function

function ChangeFieldName (val) {
document.FieldName.xmlfield.value=val;};

nothing happens? The value is not set?

function ChangeFieldName (val) {
if( document.getElementById )
document.getElementById('xmlfield').value = val;
}
 
R

Ryan

why do i need:

if( document.getElementById )
?
Dag Sunde said:
function ChangeFieldName (val) {
if( document.getElementById )
document.getElementById('xmlfield').value = val;
}
 
B

Bubba

Ryan said:
I have a hidden field as such:

<INPUT TYPE=\"hidden\" name=xmlfield >

I have a button that i want to use to call a function to change the
value:

<INPUT TYPE=submit VALUE="Display XML" Name="displayXML"
OnClick="ChangeFieldName('XML')">

here is the function

function ChangeFieldName (val) {
document.FieldName.xmlfield.value=val;};

nothing happens? The value is not set?

Use document.FORMNAME instead of document.FIELDNAME.
 
M

Michael Winter

[snip]
<INPUT TYPE=\"hidden\" name=xmlfield >
[snip]

function ChangeFieldName (val) {
if( document.getElementById )
document.getElementById('xmlfield').value = val;
}

That won't help. The control is *named*; it does not have an id, which
makes getElementById patently useless. Furthermore, as there is a form (a
hidden value would be pointless, otherwise), using getElementById makes
the page unnecessarily backward-incompatible.

Mike
 
M

Michael Winter

Please don't top-post.
why do i need:

if( document.getElementById )
?

The getElementById method is a relatively recent addition to the Document
Object Model (DOM). Older browsers don't support it, so a technique known
as feature detection is used to check that a user agent supports the
method before a script tries to execute it.

More information can be found in the FAQ (<URL:http://jibbering.com/faq/>
- look for 4.26) and it's notes
(<URL:http://www.jibbering.com/faq/faq_notes/faq_notes.html>). You'll also
find information on how to reference form controls.

[snip]

Mike
 
R

Ryan Gaffuri

Bubba said:
Use document.FORMNAME instead of document.FIELDNAME.


I tried the following and nothing worked.

document.formname.xmlfield.value = val
I also tried naming my form:

<FORM name=ADDRESSBOOK>

dont know if i need to name it when i do </FORM>

then did:

document.ADDRESSBOOK.xmlfield.value = val

this is what i am trying to do. I have a form. When a certain button
is pressed. I want to pass a value back to my java servlet. I thought
the best way to do it was to use a hidden field and set that with a
button. then i can retrieve it on the servlet side.
 
R

Ryan Gaffuri

Michael Winter said:
[snip]
<INPUT TYPE=\"hidden\" name=xmlfield >
[snip]

function ChangeFieldName (val) {
if( document.getElementById )
document.getElementById('xmlfield').value = val;
}

That won't help. The control is *named*; it does not have an id, which
makes getElementById patently useless. Furthermore, as there is a form (a
hidden value would be pointless, otherwise), using getElementById makes
the page unnecessarily backward-incompatible.

Mike

i also tried the following which i got out of the gibbering faq.

document.forms["myform"].elements["xmlfield"].value=val
 
M

Michael Winter

[snip]
I tried the following and nothing worked.

document.formname.xmlfield.value = val
I also tried naming my form:

<FORM name=ADDRESSBOOK>

dont know if i need to name it when i do </FORM>

No. Attributes only appear in the starting tag of an element.

Perhaps you should try validating your page
then did:

document.ADDRESSBOOK.xmlfield.value = val

Without actually seeing your page, it's diffcult to say what's wrong.
Nothing this simple should be so hard to solve. If you still need help in
this thread, please post your mark-up and the relevant script code.
Preferably this should be in the form of a simplified page, posted
somewhere on the Web. If that isn't possible, the same should be copied
and pasted in a post.
this is what i am trying to do. I have a form. When a certain button is
pressed. I want to pass a value back to my java servlet. I thought the
best way to do it was to use a hidden field and set that with a button.
then i can retrieve it on the servlet side.

From that description, and what you've posted, there's no need for
scripting at all.

Submit buttons, just like any other control, will submit a name/value pair
if the browser considers it a "successful control". There are two ways to
implement this: with a BUTTON element, or an INPUT element with type
"submit". The former will allow cleaner server-side processing, but it
won't work at all with NN4. The latter will work with all browsers, but it
will require changes to your server-side code.

<button type="submit" name="xmlfield"
value="XML">Display XML</button>

or

<input type="submit" name="xmlfield" value="Display XML">

You'll immediately notice that the two values to be submitted are
different. The problem with the INPUT element is that it's value is also
the text displayed.

Whichever of the two you'll choose, either will be a far better solution
than making your page reliant on script support.

Mike
 

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,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top