何永康 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条)

报告相同问题?

悬赏问题

  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统