mary*: document.forms[0].elements[#].value.length ist undefined

Hej,

ich möchte die Länge des Inhalts mehrerer input-Felder ausgeben.

Die Namen der Felder sind dynamisch, damit sie per PHP ausgelesen werden können.

Sie stehen am Anfang des Formulars, starten also bei Index 0, wenn sie per document.forms[0].elements[#] ausgelesen werden sollen.

Der Aufruf von:

alert(document.forms[0].elements[i].value);

funktioniert tadellos.

Aber wenn ich die Länge haben möchte, meldet das alert-Fenster immer "undefined".
alert(document.forms[0].elements[i].value.length);

Ich habe das ganze schon zwischengespeichert und versucht als string zu konvertieren...hilft alles nischt.

Weiß jemand Rat?
Vielen Dank und schönes Nächtle,
mary*

  1. Hello,

    hier nochmal der Code, genauer:

    Ausgabe HTML:

      
    for($i=1; $i<count($variableAnzahl); $i++) {  
        echo '<input type="text" name="field'.$i.'"/>';  
    }  
    
    

    Die JavaScript-Funktion

      
    function foo(anzahlFelder) {  
      counter = 0;  
      for(i=0; i<anzahlFelder;i++) {  
        alert(document.forms[0].elements[i].value.length);  
        counter++;  
      }  
      if(counter==0) return FALSE;  
      return TRUE;  
    }  
    
    

    Der Aufruf:

      
    <button type="submit" onClick="foo(<?= count($variableAnzahl);?>)">testen</button>  
    
    

    Die Ausgabe: "undefined"

    Ich hoffe, dass war so verständlicher?

    Vielen Dank für alle Antworten,
    mary*

    1. Hallo! - Problem gelöst:

      der Vollständigkeit halber...:

      Ich habe auf's Gratewohl "forms[0]" durch den wirklichen Namen der
      Form ersetzt. PLÖTZLICH ging's. Liegt wohl an mir, aber komisch
      bleibt's.

      So geht's:
      Die JavaScript-Funktion

        
      function foo(anzahlFelder) {  
         counter = 0;  
         for(i=0; i<anzahlFelder;i++) {  
           alert(document.inputForm.elements[i].value.length);  
           counter++;  
         }  
         if(counter==0) return FALSE;  
         return TRUE;  
      }  
      
      

      Vielleicht hilft's jemandem...
      Gruss und schöne Ostern,
      mary*