JavaScript - Tutorial - Objektreferenz - Das elements-Objekt

In modernen Browsern ist dieses Objekt vom Typ NodeList (W3C-DOM-Level-3).


window
document
forms
elements
options

elements ist ein Array-Objekt, welches Information über alle mit den <input>- <textarea>- und <select>-tags erzeugten Formularelemente enthält.

Attribute des Objekts elements
Attribut Bedeutung
lengthAnzahl der Formularelemente
[#]#-tes Formularelement


Attribute eines Formularelements
Attribut Bedeutung
checkedCheckung von Checkboxen und Radiobuttons (<input>)
defaultCheckedvoreingestellte Checkung (<input>)
defaultValuevoreingestellter Textinhalt (<input> <textarea>)
nameName
selectedIndexIndex der Auswahl (<select>)
typeTyp (<input>)
valueTextinhalt


Unter-Objekte eines Formularelements
Objekt Bedeutung
formFormular, zu dem das Element gehört
optionsArray der Optionen eines Auswahlfeldes (<select>)
[#]#-te Option (alternativ zu options[#])

Das heißt, daß man anstatt forms[#].elements[#].options[#] auch forms[#].elements[#][#] oder forms[#][#][#] schreiben kann.
Von derartiger Verkürzung rate ich allerdings ab, da es vermutlich nicht von jedem Browser verstanden wird.

Funktionen eines Formularelements
Funktion Bedeutung
blur()Element verlassen
click()Mausklick simulieren
focus()Element aktivieren
handleEvent()Ereignis verarbeiten
select()Text selektieren


Einbindung von Formularelementen in JavaScript


Die einzelnen Formulare lassen sich nicht nur über document.forms[#].elements[#] ansprechen, sondern auch über den im jeweiligen tag angegebenen Namen.
Eine mit <input name="mein_textfeld"> eingebundene Eingabezeile kann auch als document.forms[#].mein_textfeld angesprochen werden.
Alternativ zu document.forms[#].elements[#] kann auch document.forms[#][#] geschrieben werden.

Punkt 1
Punkt 2
Punkt 3
Punkt 4
Punkt 1
Punkt 2
Punkt 3
Punkt 4

HTML-Quelltext des Formulars:


<form name="demo">
<table cellpadding="5" cellspacing="2" border="0" width="100%">
<tr><td style="background:#D0F0D0" align=center>
<input type=radio name="punkte" value="Punkt 1" onClick="MachPunkte()" checked>

Punkt 1<br>
<input type=radio name="punkte" value="Punkt 2" onClick="MachPunkte()">

Punkt 2<br>
<input type=radio name="punkte" value="Punkt 3" onClick="MachPunkte()">

Punkt 3<br>
<input type=radio name="punkte" value="Punkt 4" onClick="MachPunkte()">

Punkt 4<br>
<textarea name="punktwert" cols="12" rows="5"></textarea>
</td></tr>
<tr><td style="background:#D0F0D0" align=center>
<input type=checkbox name="checkdas" value="Punkt 1" onClick="MachPunkte()" checked>

Punkt 1<br>
<input type=checkbox name="checkdas" value="Punkt 2" onClick="MachPunkte()">

Punkt 2<br>
<input type=checkbox name="checkdas" value="Punkt 3" onClick="MachPunkte()">

Punkt 3<br>
<input type=checkbox name="checkdas" value="Punkt 4" onClick="MachPunkte()">

Punkt 4<br>
<textarea name="checkwert" cols="12" rows="5"></textarea>
</td></tr>
</table>
</form>

In diesem Beispiel hat das Formular den Namen demo. Der Ausdruck document.demo ist also mit document.forms[0] gleichzusetzen.
Die Textfelder haben die Namen punktwert und checkwert, anstatt document.demo.elements[4] kann auch document.demo.punktwert geschrieben werden, anstatt document.demo.elements[9] auch document.demo.checkwert.
Die vier Radiobuttons werden durch document.demo.elements[0] bis document.demo.elements[3] dargestellt, die vier Checkboxen durch document.demo.elements[5] bis document.demo.elements[8]. Sie sind nicht über ihre Namen ansprechbar, da sich jeweils vier Radiobuttons und Checkboxen den gleichen Namen teilen. Das ist besonders für die Radiobuttons nötig, damit der Browser weiß, welche Radiobuttons eine funktionale Einheit bilden.

JavaScript-Quelltext im head-Bereich


<script type="text/javascript">
<!--
function MachPunkte()
{
  var i,Text;
  Text="";           /* Text leeren */
  for (i=0;i<4;i++)  /* die vier Radiobuttons durchsehen */
  {
    Text+=document.demo.elements[i].value;  /* Inhalt zum Text dazu */
    if (document.demo.elements[i].checked)  /* wenn gecheckt */
      Text+=" <#>\n";
    else                                    /* ansonsten */
      Text+=" < >\n";
  }
  document.demo.punktwert.value=Text;  /* oberes Textfeld beschreiben */
  Text="";           /* Text leeren */
  for (i=5;i<9;i++)  /* die vier Checkboxen durchsehen */
  {
    Text+=document.demo.elements[i].value;  /* Inhalt zum Text dazu */
    if (document.demo.elements[i].checked)  /* wenn gecheckt */
      Text+=" <#>\n";
    else                                    /* ansonsten */
      Text+=" < >\n";
  }
  document.demo.checkwert.value=Text;  /* unteres Textfeld beschreiben */
}
//-->
</script>


Autor: Ulrich Kritzner