HTML5本地存储不存储密码框中的值

时间:2013-09-06 03:06:44

标签: javascript html html5 local-storage

我编写了一个HTML文件,它包含两个输入框,一个名为username,另一个名为password。像这样:

<input class='registerinput' id='registerusername' placeholder='Username'></input>
<input class='registerinput' id='registerpassword' placeholder='Password' type='password'></input>
<input class='registerinput' id='registerpasswordrepeat' placeholder='Repeat Password' type='password'></input>

我想使用这些代码将其存储到本地存储中。

if (document.getElementById('registerusername').value != "") {
    localStorage.username=document.getElementById('registerusername').value }
else if (document.getElementById('registerusername').value == "") {
    alert('You must enter a username.') } 
if (document.getElementById('registerpassword').value != "" && document.getElementById('registerpasswordrepeat').value == document.getElementById('registerpassword').value) {
    localStorage.password==document.getElementById('registerpassword'.value) }
else if (document.getElementById('registerpassword').value == "") {
    alert('You must enter a password') }
if (document.getElementById('registerpasswordrepeat').value != document.getElementById('registerpassword').value) {
    alert('The password did not match.') } 

除了我无法在密码框中保存值外,一切正常。它是安全性的HTML5存储限制还是我的代码中的错误?感谢。

2 个答案:

答案 0 :(得分:2)

在回答之前,请注意可能有野外浏览器不支持此功能,您可以按如下方式检测:

if(window.localStorage) {
    // do your local storage stuff here
} else {
    // do something else instead as localStorage is not available
}

除了这些信息,这是你的错字:

localStorage.password==document.getElementById('registerpassword'.value) }

在结束'之后,你错过了括号。

答案 1 :(得分:1)

正如jmort253指出的那样,检查浏览器支持是明智的,即使几乎所有浏览器都支持localStorage(但真正需要使用你的应用程序的是那个没有...的那个)。

并且还改变了这一行(double =和end-括号在错误的地方):

localStorage.password==document.getElementById('registerpassword'.value)

为:

localStorage.password = document.getElementById('registerpassword').value;

然而,localStorage的更“正确”的语法是使用:

localStorage.setItem(key, value);

您使用以下方法检索:

var value = localStorage.getItem(key);

如果不存在,则为Stringnull提供值(如果密钥不存在,则直接属性方式将始终为undefined。)

另一个提示更容易避免拼写错误的提示就是集中你的变量,例如:

var password1 = document.getElementById('registerpassword').value,
    password2 = document.getElementById('registerpasswordrepeat').value;

if (password1.length > 0 && password1 === password2) { ... }

通过这种方式,如果发生错误,您可以更轻松地发现(并且奖励也会更快)。