Chris Brown
2019-07-23 22:42
采纳率: 87.5%
浏览 290

关于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里面的数据在注册页面都可以正常储存。
求解答!感激不尽!
附上问题截图:

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 一只成序源 2019-07-24 09:22
    已采纳

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

    解决办法很简单:

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

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

    点赞 评论

相关推荐 更多相似问题