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

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

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

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗