为什么我的代码只执行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后面的。

我真的快疯了 不知道哪里出错了

Sheryl要做优秀的UID
浏览 1109回答 2
2回答

stone310

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>
打开App,查看更多内容
随时随地看视频慕课网APP