Verstehe nicht, warum es falsch ist?
// loggen der Variabeln-Name für den Login-Button //
let loggen = document.getElementById("login");
loggen.addEventListener("click", function() {
// eingabeFeld ist der Name für das Inputfeld //
let eingabeFeld = document.getElementById("field");
eingabeFeld.value;
if (eingabeFeld.includes("huso1234")) {
alert("Ja, das Passwort ist richtig");
}
else {
alert("Das Passwort ist falsch");
}
eingabeFeld.textContent = "";
});
Funktioniert halt einfach nicht. Es handelt sich hierbei um die Programmiersprache JavaScript. Es kommt kein Alert und am Ende geht der Text auch nicht weg vom Inputfeld.
3 Antworten
Der Grund, weshalb der Code nicht funktioniert, ist, dass Du den Wert von eingabeFeld.value nicht einer Variablen speicherst und dann darauf zugreifst:
let eingabeFeld = document.getElementById("field");
// Wert des „eingabeFeld“-Elements in die Variable „eingabeText“
// und diese anschließend überprüfen:
var eingabeText = eingabeFeld.value;
if (eingabeText.includes("huso1234")) {
alert("Ja, das Passwort ist richtig");
} else {
alert("Das Passwort ist falsch");
}
Du kannst auch, wie die anderen bereits sagten, eingabeFeld.value direkt in die if-Bedingung schreiben, um Dir eine Variablendefinierung zu ersparen:
// auf Eigenschaft „value“, also auf den Wert des
// „eingabeFeld“-Elements zugreifen und dann
// gleich überprüfen:
if (eingabeFeld.value.includes("huso1234")) {
alert("Ja, das Passwort ist richtig");
} else {
alert("Das Passwort ist falsch");
}
eingabeFeld.includes(…) ist hier nicht korrekt, da sich eingabeFeld auf das HTML-input-Element bezieht und nicht auf dessen Eingabewert. Deswegen muss .value ergänzt werden.
Eine Passwort-Kontrolle sollte jedoch eigentlich nicht mit includes() erfolgen, da diese Funktion überprüft, ob ein gegebener String in einem String enthalten ist. Somit wäre auch eine falsche Passwort-Eingabe wie schuso12345 gültig, da huso1234 als darin als sog. Substring vorkommt. Es sollte ein einfacher Vergleich mit === gemacht werden, sodass wirklich nur huso1234 gültig ist:
if (eingabeFeld.value === "huso1234") { … }
Ich und JavaScript sind zwar auch keine Freunde, aber ich habe eine Vermutung:
// loggen der Variabeln-Name für den Login-Button //
let loggen = document.getElementById("login");
loggen.addEventListener("click", function() {
// eingabeFeld ist der Name für das Inputfeld //
let eingabeFeld = document.getElementById("field");
if (eingabeFeld.value.includes("huso1234")) {
alert("Ja, das Passwort ist richtig");
}
else {
alert("Das Passwort ist falsch");
}
eingabeFeld.value = "";
});
eingabeFeld.value;
^^ Das möchtest du eine Zeile darunter in der If-Abfrage haben und nicht als eigenes Statement.
Thank you :).