何永康 2021-02-08 12:42 采纳率: 80%
浏览 184
已采纳

flag标志位在js中为false为什么返回值是true?

js代码块

var  flag=false;
function FocusItems(obj){
    if($(obj).attr('name')==='code'){
    $(obj).next().next().html('').removeClass('error');
}else {
        $(obj).next('span').html('').removeClass('error');
    }
}


function CheckItems(obj){
    var msgBox=$(obj).next('span');


    switch ($(obj).attr('name')) {
        case "username":
            if (obj.value ==="") {
                msgBox.html('用户名不能为空');
                msgBox.addClass('error');
                flag=false;
            }
            else {
                var url1 = "/demo_war_exploded/UserNameCheck?name=" + encodeURI($(obj).val()) + "&" + new Date().getTime();

                $.get(url1, function (data) {
                    if (data ==="false") {
                        msgBox.html('用户名不存在')
                        msgBox.addClass('error');
                        flag=false;
                    } else {
                        msgBox.html().removeClass('error');
                        flag=true;
                    }
                });
            }
            break;
        case "password":
            if (obj.value ==="") {
                msgBox.html('用户密码不能为空');
                msgBox.addClass('error');
                flag=false;
            }else{
                flag=true;
            }
            break;
        case "code":
            var numshow = $(obj).next().next();

            if (obj.value === "") {
                numshow.html('验证码不能为空');
                numshow.addClass('error');
                flag=false;
            }else{
                var url = "/demo_war_exploded/CheckUserCode?num=" + encodeURI($(obj).val()) + "&" + new Date().getTime();

                $.get(url, function (data) {
                    if (data === "false") {
                        numshow.html('验证码输入有误');
                        numshow.addClass('error');
                        flag=false;
                    }else{
                        numshow.html().removeClass('error');
                        flag=true;
                    }
                });
            }
            break;
    }
}

function CheckForm(frm){
    var els=frm.getElementsByTagName('input');

    for (var i=0;i<els.length;i++){
        if(els[i]!=null){
        if(els[i].getAttribute("onblur")){
            CheckItems(els[i]);
        }
    }
    }
    alert(flag);
    return flag;
}

jsp代码

<div class="form">
       <h3>登陆</h3>
       <form action="<%=request.getContextPath()%>/UserLogin" method="post" onsubmit="return CheckForm(this)">
       <div class="inputBox">
           <input type="text" name="username" placeholder="用户名" value="" onfocus="FocusItems(this)" onblur="CheckItems(this)">
           <span></span>

       </div>
       <div class="inputBox">
           <input type="password" name="password" placeholder="密码" onfocus="FocusItems(this)" onblur="CheckItems(this)">
           <span></span>
       </div>
       <p class="forget"><a href="fgtpwd.jsp">忘记密码</a><a href="../register/register.jsp">用户注册</a></p>

           <div class="inputBox">
               <input type="text" name="code" value="" placeholder="验证码" style="width: 140px" autocomplete="off" onfocus="FocusItems(this)" onblur="CheckItems(this)">
               <img class="code" src="<%=request.getContextPath()%>/doYZM" alt="看不清换一张" onclick="change(this)">
               <span></span>
           </div>
       <div class="inputBox">
           <input type="submit" name="login" value="登陆">
       </div>
       </form>
       </div>


 

这里是上述代码返回值之前打印的flag的值,不知道为什么用户名错误和验证码错误都不返回false,请各位大佬指点一下错在哪里?我是最近刚刚开始学习的小白,找了两天找不到bug在哪,也不报错,所以束手无策了。

  • 写回答

3条回答 默认 最新

  • 封印di恶魔 2021-02-08 15:48
    关注

    你switch判断的问题,比如用户名错误了,然后下一个判断密码,密码是对的,所以又改成了true

    所以正确的逻辑应该是,判断用户名或密码或验证码,其中一个不满足条件就直接弹出提示信息了,不继续往下判断

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)