Entry
How can I index form elements with a name like "field-name"?
Feb 14th, 2001 13:06
Paulo Eduardo Neves, Jeff Pfaff,
Usually if you have a form like this:
<FORM NAME="formName">
<INPUT NAME="fieldName" ...>
<INPUT NAME="anotherFieldName" ...>
you can reference the form elements using:
document.formName.fieldName
document.formName.anotherFieldName
However you may have a form with field names containing characters
which are not allowed in identifiers in JavaScript, such as:
<INPUT NAME="anotherField-Name" ...>
Using 'document.formName.anotherField-Name' to reference this element
will cause an error because javascript will view it as a minus sign.
An easy work around for this is to reference the elements this way
instead:
document.formName.elements[x]
where x is the number of each 'input' statement in your form.
using this method, you can safely reference the following form
variables:
<FORM NAME="formName">
<INPUT NAME="field-Name" ...>
<INPUT NAME="anotherField-Name" ...>
</FORM>
With these statements
document.formName.elements[0] (for field-Name)
document.formName.elements[1] (for anotherField-Name)
Notice that the numbering starts with zero!
You can also access the array notation, it will probably make your code
clearer:
document.formName['anotherField-Name']