java学Web——day04【JavaScript高级篇——DOM】

【前言】

    强调一下,javaScript 、css、html不是java同学们的核心课程,大部分知识只是做一个了解,能看懂前端代码,能自己制作小页面展示后台数据,这样子就够了。我主要写的是学习心得,汇总知识点什么的,其他博客一搜一堆。这里不再重复啦。

【正文】

    今天主要学习了DOM(Document Object Model)文档对象模型。DOM能把HTML文件转换成一个树状结构。整个树状结构由结点Node构成,HTML的标签就是树的一个结点,称之为元素。标签的属性、事件等是结点的值。组成树状结构能够方便快速索引到指定的元素。在做增、删、改、查元素方面具有强大的功能。

    今天的核心内容是JS事件和DOM元素操作。
   
    通过今天学习的案例来说明DOM知识点的使用。
    
    这里通过模仿上课视频中的项目需求分析来对所做的案例进行总结。


    一、案例1、案例3:表单的本地校验版本2:
    
    
    1.需求分析:


    在一张用户注册表中,校验用户输入的信息是否符合规定。由如下信息输入:用户名、密码、确认密码、Email、户籍信息。请校验用户输入的信息是否正确,并给与方便的提示。校验规则如下:
    
    用户名:不能为空
    密码:不能少于6位
    确认密码:确认密码与密码需要相同
    Email:一个合法的Email字段
    户籍信息:当在省份选择框中,选择省份完省份后,在市区选择框中会自动生成该省的所有市区项。
    
    在核对以上信息正确后,点击“注册”按钮提交表单


    2.技术分析:


     1)实现形式:当用户输入完一个信息后,在输入项后面会显示用户输入的信息所得到的校验结果,字体红色表示不通过,绿色表示通过;
     2)实现方法:
     (1)通过JS事件机制中的获取焦点事件onfocus和失去焦点事件onblur这两个方法调用JS函数运行。
     (2)在JS函数中使用DOM获取元素方法document.getElementById("id"),获取用户输入的信息。与校验规则进行判断。
     (3)在HTML中的每项输入框后面添加一个块状标签,其id值设为输入框的id+Span。该标签用来接受校验的结果
     (4)在注册提交按钮添加属性onSubmit ="return  校验方法" 所有信息都校验通过时返回ture.表单方可提交。
     
    3.实现细节:


      1).输出结果到 span标签:使用innerHTML方法:这个方法是js两个输出方法之一,可以往所指定的标签中输出内容。输出的内容可以是文字,也可以是标签。小代码如下:
      document.getElementById(id + "Span").innerHTML = "" + content + "";
      2).在检验两次密码是否相等,居然不能用password.equals(repassword)。。。而是用passowrd == repassword。
      3).校验Email字段的时候,使用到了正则表达式。虽然已经不能自己写出来,但是看得懂还是可以的。代码如下:
      reg = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$");
email = document.getElementById(id).value;
if(reg.test(email))
{
content = "邮箱正确";
color = "green";
}
else
{
content = "请输入正确的邮箱格式";
color = "red";
}
     
    4.核心代码:户籍输入框的省市联动制作:
      1).利用onChange = "函数方法",当选择框的选项做改动的时候,会触发该事件,进而启动JS代码
      2).给

密码

确认密码

Email

性别

男   

籍贯

register:css
     
		* {
			margin-left: 0px;
			margin-top: 0px;
		}
		
		a {
			text-decoration: none;
		}
		
		.c1 {
			margin-left: auto;
			margin-right: auto;
			background-color: #228B22;
			width: 96%;
			height: 1500px;
		}
		
		.c2 {
			background-color: #000000;
			width: 100%;
			height: 58px;
			float: left;
		}
		
		.c3 {
			float: left;
			background-color: red;
			width: 100%;
			height: 52px;
		}
		
		.c31 ul li {
			color: #FFFFFF;
			list-style-type: none;
			float: left;
			margin-left: 5px;
		}
		
		.c31 ul li a {
			color: #FFFFFF;
		}
		
		.c31 ul li a:link {
			color: #FFFFFF;
		}
		
		.c31 ul li a:hover {
			color: green;
		}
		/*.c31 ul li a:visited
		{
			color:yellow;
		}*/
		/*中间内容层*/
		
		.c4 {
			margin-top: 20px;
			float: left;
			background-color: cyan;
			width: 100%;
			height: 620px;
			background-image: url(img/regist_bg.jpg);
		}
		/*注册框*/
		
		.c41 {
			margin-top: 30px;
			margin-left: auto;
			margin-right: auto;
			width: 887px;
			height: 550px;
			background-color: #FFFFFF;
			border: 5px solid #ccc;
		}
		/*注册表*/
		
		.c411 {
			width: 100%;
			height: 450px;
			border: 1px solid lightskyblue;
			margin-top: 40px;
			margin-left: 90px;
		}
		
		.c411_frame {
			height: 37px;
			width: 100%;
			margin-top: 15px;
		}
		
		.register_input_style {
			align-content: center;
			float: left;
			margin-left: 30px;
			width:377px ;
			height: 34px;
			border: 1px solid darkgray;
			box-shadow: #337AB7;
			border-radius: 5px;
		}
		
		.register_font {
			
			margin-top:8px ;
			width: 60px;
			text-align: right;
			font-weight: bold;
			font-size: 14px;
			line-height: 20px;
		}
		/*售后层*/
		
		.c5 {
			margin-top: 60px;
			float: left;
			background-color: blue;
			width: 100%;
			height: 78px;
		}

         
function tips(id) {
	var username = document.getElementById(id).value;
	var content;
	var color;
	if(username == "") {
		content = "用户名不为空";
		color = "red";
	} else {
		content = "用户名合法";
		color = "green";
	}
	document.getElementById(id + "Span").innerHTML = "" + content + "";

}

function password_tips(id) {
	password = document.getElementById(id).value;
	if(password.length < 6) {
		content = "密码不能少于6位";
		color = "red";
	} else {
		content = "密码格式正确";
		color = "green";
	}
	document.getElementById(id + "Span").innerHTML = "" + content + "";
	
}

function repassword_tips(id) {
	
	repassword = document.getElementById(id).value;
	password2 = document.getElementById("password").value;

	if(!(repassword == password2)) {
		content = "两次密码不一致";
		color = "red";
	} else if(repassword == password2) {
		content = "两次密码正确";
		color = "green";
	}
	document.getElementById(id + "Span").innerHTML = "" + content + "";
}

function email_tips(id) {
	reg = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$");
	email = document.getElementById(id).value;
	if(reg.test(email))
	{
		content = "邮箱正确";
		color = "green";
	}
	else
	{
		content = "请输入正确的邮箱格式";
		color = "red";
	}
	document.getElementById(id+"Span").innerHTML = ""+content+"";
}

//这是制作选择框省市联动的方法

var arrs = new Array(5);
			arrs[0] = new Array("杭州市","绍兴市","温州市","义乌市","嘉兴市");
			arrs[1] = new Array("南京市","苏州市","扬州市","无锡市");
			arrs[2] = new Array("武汉市","襄阳市","荆州市","宜昌市","恩施");
			arrs[3] = new Array("石家庄市","唐山市","保定市","邢台市","廊坊市");
			arrs[4] = new Array("长春市","吉林市","四平市","延边市");
			
function changeCity(value)
{
	
			
	var city = document.getElementById("city");
	for(var i = city.options.length-1;i>0;i--)
	{
		city.options[i] = null;
	}
	
	for(var i = 0;i


           

你可能感兴趣的:(JavaWeb,Java)