JS中获取用户名的标签<span>,简称usernameErrorSpan,位置放置错误

我这是学习js过程中遇见的问题,找了半个小时bug,发现获取用户名的标签<span>,简称usernameErrorSpan,位置放置错误。

//获取username的span标签

var usernameErrorSpan = document.getElementById("username");

先看一下源码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>表单创建</title>    
        <style type="text/css">
            span {
                color: red;
                font-size: 12px;
            }
        </style>
    </head>
    <body>
        <script type="text/javascript">
        /*
        (1)用户名不能为空
        (2)用户名必须在6-14位之间
        (3)用户名只能有数字和字母组成,不能含有其它符号(正则表达式)
        (4)密码和确认密码一致,邮箱地址合法。
        (5)统一失去焦点验证
        (6)错误提示信息统一在span标签中提示,并且要求字体12号,红色。
        (7)文本框再次获得焦点后,清空错误提示信息,如果文本框中数据不合法要求清空文本框的value
        (8)最终表单中所有项均合法方可提交
        */
       
        window.onload = function(){
            
            //给用户名文本框绑定失去焦点blur事件
            var usernameEln = document.getElementById("username");
            usernameEln.onblur = function(){
                //获取用户名
                var username = usernameEln.value;
                //去除前后空白
                username = username.trim();
                    //判断用户名不能为空
                    //获取username的span标签(就是这里位置错误,这是针对用户名失去焦点blur获取的span标签,如果要想用户名的获取焦点foucs就不能调用这个属性)
                    var usernameErrorSpan = document.getElementById("usernameError");

                    if(username ==""){
                        usernameErrorSpan.innerText= "用户名不能为空!";
                    }else{
                        //用户名不为空
                        //用户名的长度[6-14]
                        if(username.length < 6 || username.length > 14){
                            usernameErrorSpan.innerText = "用户名长度不合法!";
                        }else{
                            //用户名长度合法
                            //用户名是否有特殊符号,正则表达式
                            var regExp = /^[a-zA-Z0-9]+$/;
                            var ok = regExp.test(username);
                            if(ok){
                                //用户名符号合法
                            }else{
                                usernameErrorSpan.innerText = "用户名只能由数字和字母组成!";        
                            }
                    }
                }
            }
            // 给username这个文本框绑定获得焦点事件
            usernameEln.onfocus = function(){
                               // 清空非法的value
                               if(usernameErrorSpan.innerText != ""){
                                   usernameEln.value = "";   
                               }
                               // 清空span
                               usernameErrorSpan.innerText = "";
            }
            
            
        }

        </script>
        
        <form action="" method="get">
        用户名<input type="text" name="username" id="username" /><span id="usernameError"></span><br>
        密码<input type="text" name="userpwd" id="userpwd" /><br>
        确认密码<input type="text" id="userpwd1" /><span id="userpwdError"></span><br>
        邮箱<input type="text" name="email" id="email" /><span id="emailError"></span><br>
        <input type="button" value="提交" id="submit" />&nbsp; &nbsp;
        <input type="reset" value="重置" />
        </form>
        
    </body>
</html>

正确修改

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单创建</title>	
		<style type="text/css">
			span {
				color: red;
				font-size: 12px;
			}
		</style>
	</head>
	<body>
		<script type="text/javascript">
		/*
		(1)用户名不能为空
		(2)用户名必须在6-14位之间
		(3)用户名只能有数字和字母组成,不能含有其它符号(正则表达式)
		(4)密码和确认密码一致,邮箱地址合法。
		(5)统一失去焦点验证
		(6)错误提示信息统一在span标签中提示,并且要求字体12号,红色。
		(7)文本框再次获得焦点后,清空错误提示信息,如果文本框中数据不合法要求清空文本框的value
		(8)最终表单中所有项均合法方可提交
		*/
	   
		window.onload = function(){
			//获取username的span标签
			var usernameErrorSpan = document.getElementById("usernameError");
			//给用户名文本框绑定失去焦点blur事件
			var usernameEln = document.getElementById("username");
			usernameEln.onblur = function(){
				//获取用户名
				var username = usernameEln.value;
				//去除前后空白
				username = username.trim();
					//判断用户名不能为空
					
					if(username ==""){
						usernameErrorSpan.innerText= "用户名不能为空!";
					}else{
						//用户名不为空
						//用户名的长度[6-14]
						if(username.length < 6 || username.length > 14){
							usernameErrorSpan.innerText = "用户名长度不合法!";
						}else{
							//用户名长度合法
							//用户名是否有特殊符号,正则表达式
							var regExp = /^[a-zA-Z0-9]+$/;
							var ok = regExp.test(username);
							if(ok){
								//用户名符号合法
							}else{
								usernameErrorSpan.innerText = "用户名只能由数字和字母组成!";		
							}
					}
				}
			}
		    // 给username这个文本框绑定获得焦点事件
			usernameEln.onfocus = function(){
							   // 清空非法的value
							   if(usernameErrorSpan.innerText != ""){
								   usernameEln.value = "";   
							   }
							   // 清空span
							   usernameErrorSpan.innerText = "";
			}
			
			
		}

		</script>
		
		<form action="" method="get">
		用户名<input type="text" name="username" id="username" /><span id="usernameError"></span><br>
		密码<input type="text" name="userpwd" id="userpwd" /><br>
		确认密码<input type="text" id="userpwd1" /><span id="userpwdError"></span><br>
		邮箱<input type="text" name="email" id="email" /><span id="emailError"></span><br>
		<input type="button" value="提交" id="submit" />&nbsp; &nbsp;
		<input type="reset" value="重置" />
		</form>
		
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在<body>标签使用标题标签<h>、段落标签<p>、图像标签<img>、超链接标签<a>、列表标签<ul><ol>、<div>标签和<span>标签可以创建一个图文并茂的网页文档。下面是它们的介绍及使用方法: 1. 标题标签<h>:用于定义标题,有<h1>到<h6>六个级别,其<h1>是最高级别的标题,<h6>是最低级别的标题。示例代码如下: <h1>这是一级标题</h1> <h2>这是二级标题</h2> ... <h6>这是六级标题</h6> 2. 段落标签<p>:用于定义段落文本。示例代码如下: <p>这是一个段落。</p> 3. 图像标签<img>:用于插入图像。需要指定图像的路径和一些属性,如宽度、高度等。示例代码如下: <img src="image.jpg" alt="图片描述" width="300" height="200"> 4. 超链接标签<a>:用于创建链接到其他页面或位置的超链接。需要指定链接的目标地址。示例代码如下: <a href="https://www.example.com">这是一个链接</a> 5. 列表标签<ul><ol>:用于创建无序列表和有序列表。无序列表使用<ul>标签,有序列表使用<ol>标签。示例代码如下: <ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> </ul> <ol> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> </ol> 6. <div>标签和<span>标签:用于组织和样式化网页内容。可以通过CSS对其进行样式设置。示例代码如下: <div style="background-color: #f1f1f1; padding: 10px;"> 这是一个<div>标签的示例。 </div> <span style="color: red;">这是一个<span>标签的示例。</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackielei编程日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值