Leo: document.forms[0]

Hallo,
leider komme ich noch nicht weiter.
Mittels einer for-Schleife gehe ich alle Elemente eines Formulars durch, prüfe welchen typ das Element hat. Ich möchte feststellen, ob alle Felder Werte enthalten, wenn nicht, soll es eine Fehlermeldung geben.
So, für Textfelder ok.
Nun komme ich zu dem Radiofeldern - hier muss es mind. ein radiofeld geben, das keinen Wert hat (wenn "ja" gecheckt ist, muss "nein" leer sein) mit folgendem Befehl kann ich mir die Anzahl der radioFelder auslesen, aber dynamischgeht es nicht:
(Bsp. Zeile 1) var anzahlRadios  = document.forms[0].radFeldName.length
Aber in meinem Fall kommt die Schwierigkeit dazu, dass ich die Feldnamen und auch die Formnamen nicht kenne. Das Script soll es automatisch erkennen.
Also wollte ich für radFeldName eine Variable einsetzten, was aber eine Fehlermeldung bringt. Die Variable wird in der Schleife mit  (Bsp. Zeile 2) elementName=document.forms[0].elements[i].name ermittelt und sollte oben in Zeile 1 eingesetzt werden. Allerdings kommt dann die Fehlermeldung "undefinde property".
Muss ich, und wenn ja wie, ein Typenumwandlung vornehmen? Danke schon mal!

  1. Moin

    var anzahlRadios  = document.forms[0].elements[elementName].length

    Gruß
    rfb

    --
    Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
    (Galileo Galilei)
  2. Hallo Leo,

    schwebt dir vielleicht so etwas vor?

    Ich frage mich auch, ob das nicht doch einfacher geht:

      
    <html>  
    <head>  
    <title>Überprüfung Inputfelder ob gecheckt bzw. ausgefüllt</title>  
    <script type="text/javascript">[code lang=javascript]  
    function check(obj) {  
       for(i=0; i < obj.elements.length; i++) {  
          if(obj.elements[i].name) {  
             if(obj[obj.elements[i].name].length) {  
                i+=obj[obj.elements[i].name].length-1;  
                jFor:  
                for(j=0; j<obj[obj.elements[i].name].length; j++) {  
                    if(obj[obj.elements[i].name][j].checked) {  
                        obj[obj.elements[i].name].valeur = obj[obj.elements[i].name][j].value;  
                        break jFor;  
                    }  
                }  
                if(obj[obj.elements[i].name].valeur)  
                    alert(obj[obj.elements[i].name].valeur);  
                else  
                    alert("Keine Angabe");  
             } else {  
                if(obj.elements[i].type == 'checkbox') {  
                    if(obj.elements[i].checked)  
                       alert (obj.elements[i].value + ': ja');  
                    else  
                       alert (obj.elements[i].value + ': nein');  
                } else {  
                    if (obj.elements[i].value != "") alert(obj.elements[i].value);  
                    else alert("Keine Angabe");  
                }  
             }  
          }  
       }  
    }
    

    </script>

    </head>
    <body >

    <form action="" method="" target="" onsubmit="return check(this)">
       <input type="Radio" name="obst" value="apfel">Apfel
       <input type="Radio" name="obst" value="banane">Banane
       <input type="Radio" name="obst" value="orange">Orange
       <input type="checkbox" name="cb1" value="frisch">frisch
       <input type="text" name="textInput1" value="" />
       <input type="submit" value="prüfen" />
    </form>

    </body>
    </html>
    [/code]

    Gruß Gernot