为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的代码只执行else后面的了,大神能不能帮我看看前面有什么错误?

为什么我的代码只执行else后面的了,大神能不能帮我看看前面有什么错误?

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title> shijiao </title> <script type="text/javascript">    function myblur(){      var myOn=document.getElementsByClassName("mytext");  var kk=myOn.value;  if(kk==""){         alert("please fill in the information completely!");  }  else{  var myname=document.getElementById("myname");  var bb=myname.value;  document.write("welcome!"+" "+bb);  }    }     </script> </head> <body> <form> 用户名:<input class="mytext" id="myname" type="text" placeholder="David"> 密码:<input class="mytext" type="password" > <input type="button" value="ok" onClick="myblur()"> </form> </body> </html>if后面的条件改成kk==null;就会执行弹窗,但是不管我有没有输入 它都只执行弹窗 else后面的就完全没有效果不改的话又只执行else后面的。我真的快疯了 不知道哪里出错了
查看完整描述

2 回答

已采纳
?
stone310

TA贡献361条经验 获得超191个赞

myOn是获取input的一个集合,要分开写对应的判断,否则无论输入什么都会一直提示undefined;

主要问题就是这个,剩下就是分别判断,让这两个input的有其中一个为false(未输入),那么就alert

<script type="text/javascript">
    function Trim(str)          //去空格函数  ,如果不要这个函数就直接删掉,然后下面if()那里的Trim()也删掉就好了
    {
        return str.replace(/(^\s*)|(\s*$)/g, "");
    }
    function myblur(){
        var myOn=document.getElementsByClassName("mytext");
        var name=myOn[0].value;   //每个input的value分开写
        var psd=myOn[1].value;   //每个input的value分开写
        if(!Trim(name)||!psd){          //当name不为全空格不为空 并且 psd不为空
            alert("please fill in the information completely!");
        }
        else{
            var myname=document.getElementById("myname");
            var bb=myname.value;
            document.write("welcome!"+" "+bb);
        }
    }
</script>


查看完整回答
1 反对 回复 2016-10-26
  • 2 回答
  • 0 关注
  • 1104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信