1.
form - this is a javaScript native reference of a
particular form, but it is used only in the context of a child (the element) -> parent (the form) context. Like:
Code:
// pseudo-code
<element onsomeevent="someFunction(this.form)">
where
this refers the element.
2.
forms - this is a generic reference of
all the forms which might exist on a document. This is the reason for it is used only as a property of the
document object
Code:
var allForms=document.forms;
Now, do you sense the difference? You may refer a form from both ends: either from a child element of that form (up from the branch), or from the parent of all the forms: the
document (down to the branch). In the later you need also either the
name of the form, or its
position in the DOM tree.