关于javascript localstorage和sessionstorage 的问题

关于javascript的问题

在做关于html5注册登陆页面的时候,利用localstorage和sessionstorage进行判断,但是出现了各种问题。请教一下各位

具体是在登陆和注册页面都有两个input标签用来存放用户名(电话)和密码,但是在使用函数的时候还是出现了问题,代码如下:

<script type="text/javascript">var itel = document.getElementById("itel");
var ipasswd = document.getElementById("ipasswd");
var itelval = itel.value;//获取用户名
var ipasswdval = ipasswd.value;//获取密码框中的密码
var k = false;

function check() {
    for(var i = 0; i < localStorage.length; i++) {
        if(itelval == localStorage.key(i)) {
            if(ipasswdval == localStorage[itelval]) {
                alert("登录成功!");
                window.location.href = ("main.html");
                k = true;
                break;
            } else {
                alert("密码错误!");
                ipasswd.value = "";
                k = true;
                break;
            }
        }
    }
    if(k == false) {
        alert("无此用户!");
        ipasswd.value = "";
        itel.value = "";
    }
}

function jump() {
    window.location.href = "register.html";//跳转到注册页面
}</script>

其中localstorage和sessionstorage里面的数据在注册页面都可以正常储存。
求解答!感激不尽!
附上问题截图:

图片说明

qq_43616237
Chris Brown 回复一只成序源: 我只注册了一个账号为1,密码为1的账号进行测试,所以只有一个1 1 的对应关系
8 个月之前 回复
qq_43616237
Chris Brown 回复一只成序源: 问题已解决
8 个月之前 回复
qq_41191401
一只成序源 看一下localstorage里的数据,加个图片
8 个月之前 回复

1个回答

经过我多次测试,终于发现了问题,哈哈。你在方法外面获取了itelval 和ipasswdval 的值,这个时候值还是为空,当你调用方法的时候。localstorage里面没有空的值吧,所以循环里面的第一个大IF就不进去了,直接到无此用户。

解决办法很简单:

function check() {
var itelval = itel.value;//获取用户名
var ipasswdval = ipasswd.value;//获取密码框中的密码
....................................

把获取值放到方法里面就好了。就可以解决了。
嘿嘿~

qq_43616237
Chris Brown 虽然后来自己也发现了,但还是谢谢
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问