老师我这个为什么输入了还是显示用户名不能为空

老师我这个为什么输入了还是显示用户名不能为空

​<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.red{
border-color: red;
}
</style>
</head>

<body>
姓名:<input type="text"> <span></span>
<script type="text/javascript">
// 补充代码
var inPut = document.getElementsByTagName('input')[0];
var span = document.getElementsByTagName('span')[0];
inPut.onfocus = function () {
span.innerHTML = '请输入你的姓名';
}
inPut.onblur = function () {
if (inPut.innerText != null) {
span.innerHTML = '用户名不能为空';
inPut.className = 'red';
} else {
span.innerHTML = '';
}
}
</script>
</body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,代码问题如下:

1、想要获取input标签内容,需要使用value属性,innerText属性不能获取

2、if条件中应该判断input内容为空,空是空字符串而不是null

3、在有内容的时候需要将input去掉red类,建议在聚焦的时候也去掉,避免边框颜色重复

参考

http://img1.sycdn.imooc.com//climg/6064376d09afc49b07100464.jpg

祝学习愉快!

  • 咸鱼王派大星 提问者 #1

    老师你说的第三点是什么意思啊(3、在有内容的时候需要将input去掉red类

    2021-04-01 09:42:47
好帮手慕星星 2021-04-01 16:33:57

同学你好,第三点意思如下这两种效果:

http://img1.sycdn.imooc.com//climg/60658557093c227010710123.jpg

http://img1.sycdn.imooc.com//climg/6065854809b5323310730109.jpg


当不输入内容失焦后input元素加red类,边框变为红色。再次聚焦的时候红色框会和input默认边框重叠,看起来不美观,所以建议去掉。另外建议有内容的时候也去掉red类,避免还是红色的。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师