我编写了一个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存储限制还是我的代码中的错误?感谢。
答案 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);
如果不存在,则为String
或null
提供值(如果密钥不存在,则直接属性方式将始终为undefined
。)
另一个提示更容易避免拼写错误的提示就是集中你的变量,例如:
var password1 = document.getElementById('registerpassword').value,
password2 = document.getElementById('registerpasswordrepeat').value;
if (password1.length > 0 && password1 === password2) { ... }
通过这种方式,如果发生错误,您可以更轻松地发现(并且奖励也会更快)。