Rolf B: Form an Discord

Beitrag lesen

Hallo TheBrain04,

 const params = {
                content: "Bewerbung \n" +
                    "Name: " + ${Discord.ABC.Name.value} + "\n" +
                    "Discord: " + Discord + "\n" +
                    "Bewirbt sich als: " + Bewierbtsichals + "\n" +
                    "Stärken & Schwächen: " + Stärken + "\n" +
                    "Message: " + Message
            }

Da ist aber nun einiges durcheinander gegangen. So hat Dir das keiner vorgeschlagen. ${...} für einen Variablenzugriff ist nur innerhalb eines template string zulässig. Ich habe Dir vorhin unseren Wiki-Artikel zu template strings verlinkt, da kannst Du Dich schlau machen.

Entweder verwendest Du einen Template String, wie Gunnar um 18:27 vorschlug, oder Stringverkettung, wie Du es bisher hattest. Deine Entscheidung.

In beiden Fällen musst Du die Feldinhalte richtig auslesen.

Dein eigener Ansatz war document.getElementById(...) - das liefert das Objekt zum HTML Element. Ein anderer Weg ist das, was Gunnar schrieb: Die forms-Auflistung von document, die man auf unterschiedliche Arten nutzen kann. Das hat historische Gründe.

document.forms - Auflistung aller Forms auf der Seite

document.forms[0] - das erste Form auf der Seite
document.forms.ABC - das Form mit name="ABC"
document.ABC - ebenfalls das Form mit name="ABC"

Was Du auf diesem Weg bekommst, ist das JavaScript-Objekt zum gewünschten Form. Von da aus kannst Du weiter zu den Form-Elementen (input, textarea, etc). Mit document.ABC.Name bekommst Du das Element mit name="Name" - aber das ist das JavaScript-Objekt für das komplette Element. Du musst Die value-Eigenschaft davon verwenden: document.ABC.Name.value.

Du hast Discord.ABC.Name.Value geschrieben - siehst Du den Unterschied? Eine Variable Discord hast Du zwar, aber das ist nicht das Dokument, sondern eine Variable von Dir, die auf das Eingabeelement mit name="Discord" verweist. Darin gibt's keine ABC Eigenschaft.

Wenn Du es mit Stringverkettung machst, so wie jetzt im Codepen, dann ohne ${...}. Wenn Du Template Strings verwendest, so wie Gunnar vorschlug, dann mit ${...}

Also - du hast verschiedene Optionen, aber du kannst sie nicht wild mixen. Es muss zueinander passen. Was Du dafür brauchst, findest Du hier im Thread. Du musst es nur lesen und anwenden.

Rolf

--
sumpsi - posui - obstruxi