Der Martin: document.getElementByNameTag länge...

Beitrag lesen

Hi,

aufgrund deiner nachfolgenden Anmerkungen frage ich schon hier: Meinst du wirklich nur input-Elemente, oder allgemein Formularelemente?
Ja, nur die.
Es gibt auch auf der Seite keine anderen Elemente.

okay, ich frag' ja nur - mir ist so ein Versehen nämlich auch schon passiert: Ich wollte eine CSS-Regel für alle Formularelemente, habe aber nicht genau darüber nachgedacht und sie dann versehentlich nur auf input-Elemente angewendet.

Stimmt sie, ich weiß, dass ich so viele Elemente habe. Ich kann sie ja auch auf der Seite die dann generiert wird, abzählen. ABER

for (var i = 0; i < <?PHP echo (2*($EintragsNum));?>; i++)

{
         document.getElementsByTagName("input")[i].disabled = false;
}


> schaltet nicht alle Elemente frei.  
  
Ich würde, um der Sache auf die Schliche zu kommen, provisorisch mal anstatt der disabled-Eigenschaft irgendeine \*sichtbare\* Eigenschaft verändern (z.B. style.backgroundColor) und zusätzlich ein alert() in die Schleife setzen. Dann kann ich nämlich Schritt für Schritt verfolgen, ob wirklich die richtigen Elemente adressiert werden.  
  
Ich habe nämlich das dumpfe Gefühl, dass du vielleicht noch das eine oder andere einzeln stehende input-Element oder gar ein ganzes Formular (ein Suchfeld vielleicht?) \*vor\* dem fraglichen Formular hast. Überhaupt: Warum wendest du getElementsByTagName eigentlich auf das ganze Dokument an, und nicht direkt auf das Formular?  
  

> Die Frage also ob ein `document.getElementsByTagName("input").length`{:.language-javascript} mit Aufschluss geben kann, was hier nicht stimmt.  
  
Kommt drauf an - wenn du wirklich noch andere input-Elemente irgendwo hast, auf die du im Moment nicht geachtet hast, müsste document.getElementsByTagName("input").length dich stutzig machen.  
  
So long,  
 Martin  

-- 
Zivilisation bedeutet, dass die Eskimos warme Wohnungen bekommen und dann arbeiten müssen, damit sie sich einen Kühlschrank leisten können.