2017-06-07 4 views
-1

Ich versuche, eine Website verschiedene Meldungen anzeigen zu lassen, je nachdem, ob das eingegebene Passwort korrekt ist oder nicht (korrektes Passwort ist thePassword). Bis jetzt, kein Glück.Password-Checker JavaScript und HTML <form>

Nach Chrome, ist der Fehler in dieser Zeile (erste Zeile der Funktion):

if (document.getElementById ("PSW") = "thePassword") {

JSFiddle: https://jsfiddle.net/5grtmxd4/

Vielen Dank im Voraus!

EDIT: Ich würde es begrüßen, dass, anstatt zu versuchen, den gesamten Code neu zu schreiben, nur notwendige Änderungen vorgenommen werden. Vielen Dank!

+1

Sie versuchen, eine Zeichenfolge zu einem Knoten zugeordnet werden. Versuchen Sie, seinen Wert mit einem String zu vergleichen: 'if (document.getElementById (" psw "). Value ==" thePassword ")' Wenn jemand jedoch "Inspect DOM" verwendet, ist es leicht, das Passwort zu erkennen keine sichere Methode überhaupt. – insertusernamehere

+1

Sie verstehen, dass das Überprüfen eines Passworts in JavaScript das Passwort an jeden weitergibt, der sich Ihre Quelle ansieht, richtig? –

+0

@insertusernamehere Das funktioniert, vielen Dank. Ja, mir ist bewusst, das ist einfach zum Testen da ich noch neu in JavaScript bin. Hast du irgendwelche Vorschläge, um es zu sichern? PHP, Methode = POST oder ähnliches? – thesystem

Antwort

1

Es gibt mehrere Dinge falsch mit Ihr Code:

  • Vergleich .value, nicht das Element selbst
  • Vergleich ist (mindestens) == statt = (Zuweisung)
  • Sie eine nicht-Taste als Auslöser einreichen verwenden, da dies die Seite zurückgesetzt direkt nach dem Klick auf die Schaltfläche

finden Sie eine aktualisierte Version bei https://jsfiddle.net/5grtmxd4/1/

function message() { 
    if (document.getElementById("psw").value == "thePassword") { 
     document.getElementById("display").innerHTML = "Logged in"; 
    } else { 
     document.getElementById("display").innerHTML = "Try again!"; 
    } 
} 
2

ändern

if(document.getElementById("psw") = "thePassword") 

if(document.getElementById("psw").value == "thePassword") 
+1

'document.getElementById (" psw "). Value'? – Igor

+1

Sorry, ich bin bearbeiten –

1

Verwenden Doppel equals (==) in if Anweisung statt einzelner gleich (=)

if (document.getElementById("psw").value == "thePassword") 

Statt

if (document.getElementById("psw") = "thePassword")