Claudia: document.forms.elements und fieldsets

Beitrag lesen

Hallo,

Ich wollte gerade mittels document.forms.elements durch alle Elemenet einer Form durchgehen, egal ob input, select oder textarea.

Wenn ich dies aber auf einer Form, welche Fieldsets enthaelt, anwende, enthaelt die HTMLCollection document.forms.elements auch die Fieldset-Elemente, obwohl diese meines Erachtens keine Form-control sind und auch nicht auf der Selfhtml-Seite zu form.elements gelistet sind.

Mach ich da was falsch oder gehoeren Fieldsets zu den Formcontrols?
Die alte W3c-Recommendation http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#h-17.2.1 erwaehnt die Fieldsets nicht, allerdings weiss ich nicht, wie aktuell das noch ist.

Ich weiss, dass ich die Fieldsets leicht in der Schleife ausschliessen kann, ich wuesste nur gern, warum diese ueberhaupt in der Collection drin sind.

Herzlichen Dank

Claudia

Hier mein Beispielformular:

  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
<title>Übung Formular mit Javascript</title>  
<script type="text/javascript" src="main.js"></script>  
</head>  
<body>  
<form id="testform" action="test.php">  
  <fieldset id="anrede"><legend>Anrede</legend>  
    <label for="frau">Frau  
      <input type="radio" name="greeting" id="frau" value="frau" />  
    </label>  
    <!-- more form elements -->  
  </fieldset>  
  <br />  
  <label for="firstname">Vorname  
    <input type="text" name="firstname" id="firstname" />  
  </label>  
  <br />  
  <button type="submit">Abschicken</button>  
</form>  
</body>  
</html>  

und das (stark vereinfachte) Javascript:

  
function showFormElems() {  
  var myElems = document.forms['testform'].elements;  
  
  alert('found ' + myElems.length + ' form elements');  
  
  for(var i = 0; i < myElems.length; i++) {  
    alert(myElems[i].tagName);  
  }  
}  
  
function attachSubmit() {  
  document.getElementById('testform').onsubmit = function() {  
    showFormElems();  
    return false;  
  }  
}  
  
window.onload = attachSubmit;