using 'name' or using 'id' of a form?

C

Carl

When using 'name' in the form, it works, when using 'id' it doesn't. Any
comments about this? By the way, is this a good method or is it better to
use 'getElementById'?
Carl

<body>
<form name="myform">
<input type button id="antw1" value="test">
</form>

<script type="text/javascript">
res=document.myform.antw1.value
alert(res)
</script>
 
B

Børge Alvestad

"Carl" wrote in message news:[email protected]...
When using 'name' in the form, it works, when using 'id' it doesn't. Any
comments about this? By the way, is this a good method or is it better to
use 'getElementById'?
Carl

<body>
<form name="myform">
<input type button id="antw1" value="test">
</form>

<script type="text/javascript">
res=document.myform.antw1.value
alert(res)
</script>

I usually give my forms both a name and an ID (both the same).
Then i reference them by document.forms['myForm']
i.e. document.forms['myform'].antw1.value

getElementById() is the most recent method and is only available in IE5+
and NN6+.
It might be a good idea to get used to that method now, but make sure
you include and option for older browsers.
I.e.
d=document // to ease further scripting
if (myObject=d.getElementById('myform')) {
res=myObject.antw1.value
} else {
res=d.forms['myforms'].antw1.value
}

If you don't need the form tags you can access the objects directly
though;
res=antw1.value

Hope this helped.
 
G

Grant Wagner

Børge Alvestad said:
"Carl" wrote in message news:[email protected]...
When using 'name' in the form, it works, when using 'id' it doesn't. Any
comments about this? By the way, is this a good method or is it better to
use 'getElementById'?
Carl

<body>
<form name="myform">
<input type button id="antw1" value="test">
</form>

<script type="text/javascript">
res=document.myform.antw1.value
alert(res)
</script>

I usually give my forms both a name and an ID (both the same).
Then i reference them by document.forms['myForm']
i.e. document.forms['myform'].antw1.value

getElementById() is the most recent method and is only available in IE5+
and NN6+.
It might be a good idea to get used to that method now, but make sure
you include and option for older browsers.
I.e.
d=document // to ease further scripting
if (myObject=d.getElementById('myform')) {
res=myObject.antw1.value
} else {
res=d.forms['myforms'].antw1.value
}

If you don't need the form tags you can access the objects directly
though;
res=antw1.value

Hope this helped.

document.forms['formName'].elements['elementName'] (or
document.forms['formName'].elementName) is still part of the standard.
There's no reason to test for and use getElementById(). If getElementById()
/is/ present, then you know you can still retrieve the value of a form
element using document.forms[...].elements[...].

As for giving your form elements the same NAME and ID. While it seems
economical and seems to work reliably across the majority of browsers,
recent discussions in this newsgroup have convinced me it's a bad practice.
This is especially true of things like checkboxes and radio buttons, which
can have several input instances with the same NAME, but each one should
have a unique ID.

As a result, I've begun using something like NAME="myInputNAME"
ID="myInputID" (I haven't quite decided on the best naming scheme yet). For
groups of radio buttons, it's NAME="myRadioNAME" ID="myRadioID1" (or maybe
ID="myRadio1ID", as I said, I haven't arrived at a conclusion as to what's
better).

Anyway, the point was, there's no reason to test for and use
getElementById(). If it's supported, then so is
document.forms[...].elements[...].

--
| Grant Wagner <[email protected]>

* Client-side Javascript and Netscape 4 DOM Reference available at:
*
http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/frames.html

* Internet Explorer DOM Reference available at:
*
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp

* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 7 / Mozilla
* http://www.mozilla.org/docs/web-developer/upgrade_2.html
 
D

Douglas Crockford

When using 'name' in the form, it works, when using 'id' it doesn't. Any
comments about this? By the way, is this a good method or is it better to
use 'getElementById'?

'id' is used to access specific objects in the DOM. 'name', in form elements, is
used to fill in the names in the postdata that is generated when the form is
submitted. Early browsers tended to use one as the default for the other, which
led to general confusion about the roles of the attributes.

http://www.crockford.com/#javascript
 

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,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top