老师,为什么实现不了?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>onblur和onfocus</title> <style type="text/css"> .red{ border:1px solid red; } </style> </head> <body> 姓名:<input type="text" id="incase"> <span id="span"></span> <script type="text/javascript"> // 补充代码 var incase=document.getElementById('input'); var spantext=document.getElementById('span'); incase.onfocus=function(){ spantext.innerHTML("请输入您的姓名"); } incase.onblur=function(){ if(incase.value.length==0){ spantext.innerHTML("用户名不能为空"); incase.style.borderColor='red'; } else{ spantext.innerHTML(""); } } </script> </body> </html>
26
收起
正在回答
2回答
同学你好,不输入任何内容,聚焦失焦后,再次聚焦,边框会变红(放大页面查看效果),如下:
建议修改:聚焦时,直接设置className属性值为black即可
针对同学的问题解答如下:
因为getElementById方法获取input元素时,传入的并不是id属性值,而是标签名,无法获取到对应的元素,导致无法实现效果,如下:
另外,innerHTML是一个属性,不是一个方法,不可以添加圆括号调用,建议修改:
祝学习愉快~
易要自律
2021-12-31 22:50:27
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>onblur和onfocus</title> <style type="text/css"> .red{ border:1px solid red; } </style> </head> <body> 姓名:<input type="text" id="incase"> <span id="span"></span> <script type="text/javascript"> // 补充代码 var incase=document.getElementsByTagName('input')[0]; var spantext=document.getElementsByTagName('span')[0]; incase.onfocus=function(){ if(incase.value.length==0){ spantext.innerHTML='请输入您的姓名'; } } incase.onblur=function(){ if(incase.value.length==0){ spantext.innerHTML='用户名不能为空'; this.className="red"; } else{ spantext.innerHTML=""; this.className="black"; } } </script> </body> </html>
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星