2016-12-09 2 views
-1

In der 14. und 28. Zeile wird der Text des Label-Tags nicht geändert, und in recorForm oder loginSetup werden Daten überschrieben.
Ich versuchte Schleife mit .key, aber es ergab die falschen gespeicherten Ergebnisse und ich bin mir nicht sicher, was ich falsch gemacht habe.
also ich verlasse es dabei.
Was ich wissen möchte, ist, warum die innHTML des Etiketts wird sich nicht ändern. (Ich nehme an, es durch Belastung ist)localStorage Override/und innerHTML fehlgeschlagen

window.onload = alert('Window Loaded'); 

    function recordForm() { 
     var userMail = document.getElementById('email').value; 
     var userPass = document.getElementById('password').value; 
     var confirm = document.getElementById('confirmation').value; 
     var text = document.getElemetsByClassName('errorText'); 

     //Check that the email is not taken and confirm validation 
     if ((userPass === confirm)) { 
     localStorage.setItem('emailz', userMail.value); 
     localStorage.setItem('passwordz', userPass.value); 
     } else { 
     text.innerHTML = 'Password does not match!'; //line 14 
     } 
    } 

    function loginSetup() { 
     var mail = localStorage.getItem('emailz'); 
     var pass = localStorage.getItem('passwordz'); 
     var mailInput = document.getElementById('logEmail').value; 
     var passInput = document.getElementById('logPassword').value; 

     if ((mailInput === mail) && (passInput === pass)) { 
     alert(mail); 
     alert(pass); 
     } else { 
       text.innerHTML = 'Invalid login'; //line 28 
     alert('no dice'); 
     alert(mail); 
     alert(pass); 
     } 
    } 
+0

Bitte geben Sie auch das entsprechende HTML ein. Ändern Sie auch alle Ihre "Alarm" -Zeilen in "console.log", was die Benutzeroberfläche nicht blockiert und irgendwelche Nebenwirkungen verursacht. –

+0

userMail und userPass haben keinen Wert beim Schreiben in localStorage, da diese bereits .value sind. – Lain

+0

Öffnen Sie die Konsole in Ihren Entwicklertools. Lesen Sie die Fehlermeldungen. Sie haben Funktionsnamen für einen Start falsch geschrieben. – Quentin

Antwort

1

Sie sollten versuchen, userMail.value und userPass.value zu speichern. Beide sind doch schon die Werte:

var userMail = document.getElementById('email').value; //Those are values already 
var userPass = document.getElementById('password').value; //Those are values already 

if ((userPass === confirm)) { 
     localStorage.setItem('emailz', userMail); //Remove the .value 
     localStorage.setItem('passwordz', userPass); //Remove the .value 
} 

Auch getEleme n tsByClassName eine Sammlung zurück, so dass Sie das erste Element davon auswählen möchten (assumably):

var text = document.getElemetsByClassName('errorText'); //Misstyped and no index.. wont work 

var text = document.getElementsByClassName('errorText')[0]; //Should work 
var text = document.querySelector('.errorText'); //Would prefer that one 

Endlich in der Funktion loginSetup() müssen Sie den Text neu definieren:

var text = document.querySelector('.errorText'); 
+0

Warum ändert sich der Text hin und her? Zuerst wurde es leer gesetzt, der Code wurde aufgerufen, er änderte sich, aber dann änderte er sich wieder. –

+0

kann ich kaum sagen, da ein Mann nur einen kleinen Teil der tatsächlichen Code- und Funktionsaufrufe teilt. – Lain