dedlfix: document.forms ist undefined

Beitrag lesen

Hi!

Bisher
document.forms['sp_anl']

Hier verwendest du einen String. Oder genauer: ein Stringliteral. Du weißt, dass man statt der Literale auch Variablen verwenden kann, denn das ist ja das A und O der programmierung, dass man sich einmal eine Strategie ausdenkt und mit unterschiedlichen Werten laufen lassen kann.

Über alert ('Variable: '+c); wird mir der Name auch korrekt ausgegeben.

An genau der Stelle, an der du c auch verwenden willst, also direkt vor dem document.forms[...]?

Aber ich kenne die Schreibweise von document.forms nicht :-(

Das hat nichts damit zu tun. Eingangs erwähnte ich ja, dass man statt Literalen auch Variablen verwenden kann. Damit ein Compiler/Parser zwischen Text und Variablennamen unterscheiden kann, gibt es Regeln. Text kommt in Anführungszeichen, Variablennamen stehen, zumindest bei Javascript, einfach so da, wobei reservierten Wörter ausgeschlossen sind.

document.forms[c] ist jedenfalls _undefined_

Da verwendest du die Variable c anstelle eines fest notierten Stringliterals. Das entspricht gültiger Syntax. Wo kommt denn das undefined her? Aus der Fehlerkonsole? Von einer ganz anderen Stelle?

document.forms['c'] auch,
document.forms['+c+'] auch,

Stringliterale, weißt du doch, stehen in Anführungszeichen. Soll der JS-Interpreter hellsehen, dass du doch einen Variablennamen meinst? Wenn du nun sagst: PHP kann das. Jein. Das kann das nur, weil da Variablennamen zwingend noch extra mit einem $ gekennzeichnet sind. Javascript kennt solch ein eindeutiges Erkennungsmerkmal nicht, weswegen es da keine Variablennamen in Anführungszeichen geben kann.

document.forms[''+e+''] auch.

Das ist ungültige Syntax. Die Fehlerkonsole kennst du und hast sie offen? Sie ist wichtig, weil sie dir solche offensichtlichen Fehler anzeigt.

Wie schreibe ich das denn nun  korrekt?

Das solltest du nun hoffentlich wissen. Dein Fehler steckt aber irgendwo anders.

Lo!