Steffen: Über Textfelder eines Formulars itterieren

Hallo,

ich habe eine Formular mit einigen Textfeldern

  
<form...>  
<input type="text" id="1" value="foo">  
<input type="text" id="2" value="bar">  
<input type="text" id="3" value="fooBar">  
...  
</form>  

Jetzt möchte ich mit JavaScript in einer Schleife alle Werte dieser Textfelder hintereinander abfragen.

Irgendwie stehe ich gerade auf dem Schlauch. Ich mache sonst kaum JavaScript, kann mir mal einer auf die Sprünge helfen?
Danke!

Gruß
Steffen

  1. Hallo,

    <form...>
    <input type="text" id="1" value="foo">
    <input type="text" id="2" value="bar">
    <input type="text" id="3" value="fooBar">
    ...
    </form>

    
    >   
    > Jetzt möchte ich mit JavaScript in einer Schleife alle Werte dieser Textfelder hintereinander abfragen.  
      
    ~~~javascript
      
    values = new Array();  
    for (i=1;i<=3;i++)  
    {  
    values.push(document.getElementByID(i).value);  
    }  
    
    

    Viele Grüße,
    Tim

    1. Danke Tim!

  2. Hi,

    ich habe eine Formular mit einigen Textfeldern

    <form...>

    <input type="text" id="1" value="foo">
    <input type="text" id="2" value="bar">
    <input type="text" id="3" value="fooBar">
    ...
    </form>

      
    das ist ungültiges HTML, weil ein ID-Wert nicht mit einer Ziffer beginnen darf.  
      
    
    > Jetzt möchte ich mit JavaScript in einer Schleife alle Werte dieser Textfelder hintereinander abfragen.  
    > Irgendwie stehe ich gerade auf dem Schlauch. Ich mache sonst kaum JavaScript, kann mir mal einer auf die Sprünge helfen?  
      
    Wenn die Felder fortlaufend numeriert sind ("i1", "i2", "i3", ...) und deren Anzahl bekannt ist, würde sich eine for-Schleife anbieten, die in jedem Durchlauf mit getElementById() das entsprechende Element sucht.  
      
    Aber vielleicht ließe sich das noch viel "schöner" umsetzen. Du könntest mit getElementsByTagName() einmal vor Beginn der Schleife alle input-Elemente innerhalb des Formulars suchen, und dann über das so erhaltene Array iterieren. Dabei in jedem Durchlauf abfragen, ob die type-Eigenschaft den Wert "text" hat, und wenn nicht, das Element übergehen (z.B. Schleifensteuerung mit continue). Das hat zumindest den Vorteil, dass nicht in jedem Schleifendurchlauf das gesamte DOM durchsucht werden muss.  
      
    So long,  
     Martin  
    
    -- 
    Wichtig ist, was hinten rauskommt.  
      (Helmut Kohl, 16 Jahre deutsche Bundesbirne)  
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    
    1. Hi,

      das ist ungültiges HTML, weil ein ID-Wert nicht mit einer Ziffer beginnen darf.

      In HTML5 darf sie; und dass das JavaScript-seitig auch alle großen browser seit langem unterstützen, darauf hat Mathias schon mehrfach hingewiesen.

      MfG ChrisB

      --
      RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?