【发布时间】:2018-04-28 11:30:07
【问题描述】:
我在index.html 中有一个名为validateLogin 的函数,我在其中设置了本地存储值键userID,在返回此函数的true 时,我加载了其他网页(home.html),其中我使用了这个 local-Storage 值 userID,但是现在,如果在没有 validateLogin 函数的情况下直接访问 home.html 时 local-Storage 为空或 localStorage 为空,我需要限制用户并将它们重定向到 signup.html ,
我在下面尝试了但它不起作用,我做错了什么?
index.html
<form id="login_form" name="login" action="home.html" method=POST onsubmit="return validateLogin()">
<script>
var userid;
function validateLogin() {
userid = document.getElementById('user_id').value;
localStorage.setItem("userID",userid);
var passid = document.getElementById('pass_id').value;
if ((userid.length < 3) || (passid.length < 6)) {
document.getElementById('user_error').setAttribute("style", "color:red")
document.getElementById('user_error').innerHTML = "invalid username/password.";
return false;
}
preventBack();
return true;
}
</script>
home.html
<body>
<!--Navigation bar-->
<div id="nav-placeholder">
</div>
<!--end of Navigation bar-->
<script>
window.onload = checkUser;
function checkUser(){
if(localStorage.getItem("userID") === "") {
window.location ="signup.html";
}
else {
$("#nav-placeholder").load("nav_auth.html");
}
};
</script>
</body>
【问题讨论】:
-
删除
window.onload = checkUser; function checkUser(){和最后一个}; -
试过了,还是不行
-
那么你想在加载 home.html 后立即检查 localStorage 数据是否存在吗?或者你想在加载完成时检查它?
-
if (localStorage.getItem("userID")) ("#nav-placeholder").load("nav_auth.html"); else window.location.replace("signup.html"); -
感谢@mplungjan ..它现在可以工作,但不知道为什么其他部分不工作
标签: javascript html local-storage