【Summary】——>Web组·Week7

2 篇文章 0 订阅

2017年5月21日,在web组的第七周正式结束,这周的主要内容是继续学习JS,这周完成的是对表单的验证和用不同方法(css,js)实现了下拉菜单的效果,主要内容有正则表达式,if..else语句,部分方法调用,标签ul,li的嵌套和对hover的指定关系,以及简单函数编写。

要点:

1.选取元素:可以通过标签名选取标签元素(数组形式),然后根据标签的出现顺序与数组索引的对应关系将数组元素(所有相同的标签元素)与每个标签对应起来;

2.编写表单验证,可通过注释方式先整理用户填写情况下需要满足哪些条件,并对不满足条件的输入给出相应提示。清晰的思路会使得整个编程过程清晰明了,很大程度上提高了编程的效率;

3.使标签内容出现的方式:xxx.style.visibility="visible/hidden";xxx.style.display="block";

4.可通过js对css的样式进行更改,需要注意标签的变化,特别是大小写,比如:div.style.marginBottom=0;

5.if...else if..else语句中注意逻辑关系(从小开始,从大开始?);

6.去掉和添加css(属性、样式),例如:     pwd2.removeAttribute("disabled");(消除其不可见属性);    aEm[2].className="active";       aEm[2].className="";

7.通过索引也可以找到输入框中输入内容的某一部分;

8.正则表达式常用方法:exec();test(),toSourse(),toString();

代码:

<body>
<div class="container">
	<form method="www.mukewang.com"> 
		<div class="name" id="user">
			<span>会员名    :</span>
			<input type="text" class="text">
			<p class="msg">
				5-25个字符,一个汉字为两个字符,推荐使用中文会员名
			</p>
		</div>
		<div>
			<span></span>
			<b id="count">0个字符</b>
		</div>
		<div>
			<span>登录密码:</span>
			<input type="password" class="text">
			<p class="msg">
				6-16个字符请使用字母加数字或符号的组合密码,不能单独使用字母、数字或者符号
			</p>
		</div>
		<div style="margin-left:107px;height: 20px">
			<span></span>
			<em class="active"> 弱</em>
			<em >中</em>
			<em >强</em>
		</div>
		<div style="margin-bottom: 20px">
			<span>确认密码:</span>
			<input type="password" class="text" disabled="">
			<p class="msg">
				请再输入一次
			</p>
		</div>
		<div>
			<span>验证邮箱:</span>
			<input type="text" class="text">
			<p class="msg">
				请输入有效的E_mail!
			</p>
		</div>
		<div>
			<br/>
			<input type="submit" class="submitBtn" value="同意协议并注册" style="margin-left:70px;margin-top:5px;">
		</div>
	</form>
</div>
<script type="text/javascript">
//函数:
function getLength(str){
	return str.replace(/[^\x00-xff]/g,"xx").length;
	}
function findStr(str,n){
	var tmp=0;
	for (var i = 0; i < str.length; i++) {
		if (str.charAt(i)==n) {
			//charAt() 方法可返回指定位置的字符
			tmp++;
		}
	}
	return tmp;
}
//元素选取:
var aInput=document.getElementsByTagName('input');
var oName=aInput[0];
var pwd=aInput[1];
var pwd2=aInput[2];
var E=aInput[3];
var aP=document.getElementsByTagName('p');
var name_msg=aP[0];
var pwd_msg=aP[1];
var pwd2_msg=aP[2];
var E_mag=aP[3];
var count=document.getElementById('count');
var aEm=document.getElementsByTagName('em');

//1.数字,字母(不分大小写),汉字,下划线
//2.5-25字符,推荐使用中文会员名
//Js用Unicode编码

//用户名*********************************************************
oName.οnfοcus=function(){
		name_msg.style.display="block";
		name_msg.innerHTML='5-25个字符,一个汉字为两个字符,推荐使用中文会员名';
}
oName.οnkeyup=function(){
		count.style.visibility="visible";
		count.style.display="block";
		var div=document.getElementById("user");
		div.style.marginBottom=0;//未实现?????????????????????
		name_length=getLength(this.value);
		count.innerHTML=name_length+"个字符";
		if(name_length==0)
		count.style.visibility="hidden";
}
oName.οnblur=function(){
		//含有非法字符
		var re=/[^\w\u4e00-\u9fa5]/g;
		if(re.test(this.value)){
			name_msg.innerHTML='含有非法字符!';
			}		
		//不能为空
		else if (name_length==0) {
			name_msg.innerHTML='不能为空!';
		}
		//长度超过25个字符
		else if(name_length>25){
			name_msg.innerHTML='长度超过25个字符!';
			}
		//长度少于6个字符
		else if(name_length<6 && name_length>0){
			name_msg.innerHTML='长度少于6个字符!';
			}
		//ok
		else{
			name_msg.innerHTML='OK';
			}
}
//密码*********************************************************
pwd.οnfοcus=function(){
	pwd_msg.style.display="block";
	pwd_msg.innerHTML='6-16个字符,请使用字母加数字或符号的组合密码,不能单独使用字母、数字或者字符';
}
pwd.οnkeyup=function(){
	//大于5字符“中”
	if(this.value.length>5){
		aEm[1].className="active";
		pwd2_msg.style.display="block";		
		pwd2.removeAttribute("disabled");
		}
	else{
		aEm[1].className="";
		pwd2.setAttribute("disabled");//未实现???????????????
		pwd2_msg.style.display="none";			
		}	
	//大于10个字符“强”
	if(this.value.length>10){
		aEm[2].className="active";
		}
	else
		aEm[2].className="";
}
pwd.οnblur=function(){
	var m=findStr(pwd.value,pwd.value[0]);
	var re_n=/[^\d]/g;
	var re_t=/[^a-zA-Z]/g;
	//不能为空
	if(this.value==""){
		pwd_msg.innerHTML='不能为空';
		}	
	//不能用相同字符
	else if(m==this.value.length){
		pwd_msg.innerHTML='不能用相同字符';
		}
	//长度应为6-12字符
	else if(this.value.length<6 || this.value.length>16)
	pwd_msg.innerHTML='长度应为6-12字符';
	//不能全为数字
	else if(!re_n.test(this.value)){
		pwd_msg.innerHTML='不能全为数字';
		}
	//不能全为字母
	else if(!re_t.test(this.value)){
		pwd_msg.innerHTML='不能全为字母';
		}
	//OK
	else{			
		pwd_msg.innerHTML='OK';
		}
	}
	//确认密码(验证两次输入的密码是否一样)
pwd2.οnblur=function(){
	if (this.value!=pwd.value) 
		pwd2_msg.innerHTML='两次输入的密码不一样';
	else
		pwd2_msg.innerHTML='OK';
}
//验证邮箱**************************************************************
E.οnblur=function(){
	var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
	if (!reg.test(E.value)) {
		E_mag.style.display="block";
	}
	else if (E.value=="") {
		E_mag.innerHTML='不能为空';
	}
	else
		E_mag.innerHTML='OK';

}
</script>
</body>
9.存在问题:部分语句效果未实现。。。正则表达式还需要加强理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值