javascript Fehler, wtf?
Hab in meinem ganzen 5 Jahren als js dev noch nie so einen Fehler gehabt.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>fire-base</title>
</head>
<body>
<input id="name" placeholder="name">
<input id="password" placeholder="password">
<button id="login" onclick="save()">login</button>
<script>
var name = document.getElementById("name")
var password = document.getElementById("password")
function save() {
alert(name.value, password.value)
}
</script>
</body>
</html>
ich experimentiere in letzter Zeit wieder etwas mit firebase. Hab als test projekt mal zwei inputs mit login button erstellt. So und jetzt gibt diesen html code mal in eine html file ein und führt es aus. Aus irgendeinem Grund wird bei name undefined alerted und der value von password wird wie erwartet alerted. Warum funktioniert das bei password, aber nicht bei name?? Hab schon mehrere code editoren ausprobiert und überall das gleiche Problem. Weiß jmd wo der Fehler ist?
Mfg Weißbrot
1 Antwort
Du operierst mit window.name. Du überschreibst zwar kurzzeitig ihren Wert, doch der wird zeitnah vom Browser wieder (auf einen String) zurückgesetzt. Da ein String kein value-Property hat, bekommst du in der Funktion undefined zurück.
Ein paar Lösungsoptionen:
a) Deklariere deine name-Variable mit const oder let. Dann wird sie auch nicht an das window-Objekt gehängt.
b) Deklariere die Variable innerhalb der Funktion.
c) Wähle einen anderen Variablennamen.
PS.: Name und Passwort wolltest du sicherlich konkatenieren, anstatt sie als einzelne Argumente an alert zu übergeben. Die alert-Funktion verwertet nur das erste Argument für die Ausgabe.
Ok Danke, dass hat wirklich geholfen. Verstehe diese ganze let var gefummel aber sowieso nicht, hauptsache es funktioniert ja xD