Well, just for starters, named <form>s *ARE* obsolete.
Which means that the the construction
is also obsolete.
I don't know of any browser that actually enforces this--all that I have used still support
--but possibly you have run into a browser that is enforcing the obsolescence?
In short, I wouldn't worry too much about it because
is the correct modern coding. And kill the name=
in your <form> tag.
Possible reason: Although IDs must be unique on a page, names do not need to be unique, at all. However, if you have multiple objects with the same name, then JS will treat them as an array.
Perhaps you have *another* object on the page with that same name?
An easy way to find out:
alert( document.siteForm.length );
That will be null if there is only one name "siteForm" or will tell you how many there are if more than one.