2015-10-05 158 views
0

我在学校做了一个项目,实际上我的“注册和登录系统”工作正常,但是现在我在注册时出现控制台错误。这是一个语法错误?我根本不知道,因为我完全不熟悉localStorage。 (这是我使用localStorage的第一个项目)。我真的可以用一些帮助来清除如何解决我的错误。“意外的输入结束”Javascript注册/登录系统

干杯。

HTML5

<div id="registerDialog" title="Register as user" style="display: none;"> 
    <input id="txtUserName" type="text" placeholder="User name"> 
    <input id="txtUserPassword" type="text" placeholder="Password"><br> 
    <button id="dialogRegBtn">Register</button> 
</div> 

<div id="loginDialog" title="Login" style="display: none;"> 
    <input id="loginUserName" type="text" placeholder="User name"> 
    <input id="loginUserPassword" type="text" placeholder="Password"><br> 
    <button id="dialogLoginBtn">Login</button> 
</div> 

jQuery和JAVASCRIPT

$(document).on("click", "#dialogRegBtn", function() { 
     var userName = $("#txtUserName").val(); 
     var userPassword = $("#txtUserPassword").val(); 
     var aUsers = JSON.parse(localStorage.aUsers); 
     var oUser = { 
      "userName": userName, 
      "password": userPassword 
     }; 
     aUsers.push(oUser); 
     localStorage.aUsers = JSON.stringify(aUsers); 
    }); 

    $(document).on("click", "#loginBtn", function() { 
     $("#loginDialog").dialog(); 
    }); 

    $(document).on("click", "#dialogLoginBtn", function() { 
     var aUsers = JSON.parse(localStorage.aUsers); 
     var userName = $("#loginUserName").val(); 
     var userPassword = $("#loginUserPassword").val(); 
     var loggedIn = false; 

     for (var i = 0; i < aUsers.length; i++) { 
      if (aUsers[i].userName == userName && aUsers[i].password == userPassword) { 
       loggedIn = true; 
      } 
     }; 
     if (loggedIn == true) { 
      $("#loginDialog").append("Login was succesful"); 
     } else { 
      $("#loginDialog").append("No user with that login information!"); 
     } 
    }); 
+0

你得到什么错误? –

+2

'#dialogLoginBtn'代码在尝试解析它之前不检查本地存储中是否有任何内容。 – Barmar

+1

什么时候发生错误,以及它发生了什么? – Barmar

回答

0

您需要检查localStorage的条目是否包含试图解析之前,任何东西。在下面的代码中,如果localStorage.aUsers中没有任何内容,则默认aUsers为空数组。

$(document).on("click", "#dialogRegBtn", function() { 
 
     var userName = $("#txtUserName").val(); 
 
     var userPassword = $("#txtUserPassword").val(); 
 
     var aUsers = localStorage.aUsers ? JSON.parse(localStorage.aUsers) : []; 
 
     var oUser = { 
 
      "userName": userName, 
 
      "password": userPassword 
 
     }; 
 
     aUsers.push(oUser); 
 
     localStorage.aUsers = JSON.stringify(aUsers); 
 
    }); 
 

 
    $(document).on("click", "#loginBtn", function() { 
 
     $("#loginDialog").dialog(); 
 
    }); 
 

 
    $(document).on("click", "#dialogLoginBtn", function() { 
 
     var aUsers = localStorage.aUsers ? JSON.parse(localStorage.aUsers) : []; 
 
     var userName = $("#loginUserName").val(); 
 
     var userPassword = $("#loginUserPassword").val(); 
 
     var loggedIn = false; 
 

 
     for (var i = 0; i < aUsers.length; i++) { 
 
      if (aUsers[i].userName == userName && aUsers[i].password == userPassword) { 
 
       loggedIn = true; 
 
      } 
 
     }; 
 
     if (loggedIn == true) { 
 
      $("#loginDialog").append("Login was succesful"); 
 
     } else { 
 
      $("#loginDialog").append("No user with that login information!"); 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="registerDialog" title="Register as user"> 
 
    <input id="txtUserName" type="text" placeholder="User name"> 
 
    <input id="txtUserPassword" type="text" placeholder="Password"><br> 
 
    <button id="dialogRegBtn">Register</button> 
 
</div> 
 

 
<div id="loginDialog" title="Login"> 
 
    <input id="loginUserName" type="text" placeholder="User name"> 
 
    <input id="loginUserPassword" type="text" placeholder="Password"><br> 
 
    <button id="dialogLoginBtn">Login</button> 
 
</div>