Chris Brown 2019-07-23 22:42 采纳率: 100%
浏览 310
已采纳

关于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;//获取密码框中的密码
    ....................................
    

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献