设计网页界面, 在JavaScript脚本中DOM控制HTML表单及表单元素

本次实验主要内容为JavaScript脚本中DOM控制HTML表单及表单元素的方法。包括表单的引用、表单元素的引用与值的处理、DOM的使用以及document对象的应用。本文包括document和form对象的内容。

实验目的

  1. 掌握JavaScript脚本中DOM控制HTML表单及表单元素的方法。
  2. 利用脚本熟练处理表单数据、输出表单以及表单提交时数据合法性验证的能力。
  3. 表单的引用、表单元素的引用与值的处理。

实验内容

设计如下图所示表单,输出所填及所选内容。

在这里插入图片描述

代码部分

HTML代码

<body>
		<div id="largediv">
			 <h2 id="yanshi" >元素演示区域</h2>
		        <div id="user">
				<form action="">
				<span>用户名:</span>
				<input type="text"  id="name">
				<br><br>
				<span>常去网站:</span><br>
				<input type="checkbox" name="checkbox" value="CSDN ">CSDN
				<input type="checkbox" name="checkbox" value="GitHub">GitHub 
				<input type="checkbox" name="checkbox" value="博客园">博客园<br>
				<input type="checkbox" name="checkbox" value="Youtube">Youtube
				<input type="checkbox" name="checkbox" value="IT之家">IT之家
				<br><br><br>
				<span>掌握技能:</span><br>
				<select id="skill" size="6" multiple="multiple">
					<option >ASP网站开发</option>
					<option >Access和SQL sever</option>
					<option >ASP.NET网站开发</option>
					<option>ADO.NET编程</option>
					<option>XML应用</option>
					<option >DIV+CSS</option>
				</select><br>
				</form>
			</div>
			<div id="mm">
						<span>密码:</span>
						<input type="password" name="password" id="password">
						<br><br>
						<span>默认搜索:</span>
						<br>
						<input type="radio" name="网站" value="baidu">baidu
						<input type="radio" name="网站" value="google">google <br>
						<input type="radio" name="网站" value="bing">bing
						<input type="radio" name="网站" value="MSN">MSN<br><br>
						<span>最想了解的技术:</span>
						<br>
						<select id="technology"></select>
						<select id="s2"></select>
					</div>
					<div id="btn">
						<input type="submit" value="提交">
						<button type="button" id="reset">重置</button> 
						<button type="button" id="list">list</button>
					</div>
				    <div id="text">
					<p id="demo"></p>
					<p id="demo2"></p>
					<p id="demo3"></p>
					<p id="demo4"></p>
					<p id="demo5"></p>
					<p id="demo6"></p>
				    </div>
			</div>
	</body>	

CSS代码

<style type="text/css">       
		          #largediv{
		            width: 50%;
		            height: 100%;
		            margin: auto;
		            position: absolute;
		            top: 0; left: 0; bottom: 0; right: 0;
		          }
		          #yanshi{
		          	background-color: #6495ED;
		          	text-align:center;
		          	top: 0; left: 0; bottom: 0; right: 0;
		          }
		          #user{
		          	text-align: justify;
		          	color: #333333;
		          }
		          #mm{
		          	text-align: justify;
		          	margin-left: 250px;
		          	margin-top: -280px;
		          	}
		          #btn{
		          	text-align: justify;
		          	margin-top: 120px;
		          	margin-right: 60px;
		          }
		          #text{
		          	color: royalblue;
		          }
	</style>

JavaScript代码

<script type="text/javascript">
		window.onload = function(){
			var city = new Array;
			city['操作系统'] = ['Windows', 'Linux', 'iOS', 'Android','UNIX'];        
			city['web前端'] = ['HTML5', 'CSS3', 'JavaScript','Vue.js','jQuery']; 
			city['编程语言'] = ['c语言', 'c++', 'Java','SQL', 'python']; 
		
			 function firstSelect() {            
			 	var select1 = document.querySelector('#technology'); 
				for(var k in city) 
				   	{select1.add(new Option(k), null);}    
				   	secondSelect();    
				}        
			function secondSelect() {            
				var select2 = document.getElementById("s2");
				var select1 = document.getElementById("technology").value;
			    select2.length = 0;     
			    for(var i in city[select1 ]) {    
			    select2.add(new Option(city[select1][i], city[select1][i]), null);                
			    };                
			    }  
			document.querySelector('#technology').onchange =function(){
				secondSelect();
			    };      
			    firstSelect(); 
		}
		list.onclick=function(){
				var username=document.getElementById("name").value;
		        var p=document.getElementById("demo");
				p.innerHTML="用户名:"+username;//输出用户名
		        var checkbox=document.getElementsByName("checkbox");//得到所有的checkbox
				var p2=document.getElementById("demo2");
				var check_box=[];//申明数组保存所有被选中checkbox背后的值
				for(var i=0;i<checkbox.length;i++){
					if(checkbox[i].checked){//如果checkbox被选中
						check_box.push(checkbox[i].value); //将被选中checkbox背后的值添加到数组中
					}
				}
				p2.innerHTML="常去网站:"+check_box;//输出常用网站;
				
				
				var select1=document.getElementById("skill");
				var p3=document.getElementById("demo3");
				var select_1=[];                 //初始化select——1
				var index=select1.length;
				for(var j=0;j<index;j++){
					if(select1.options[j].selected){
		                select_1.push(select1.options[j].value);  //遍历数组添加数据
					}
				}
				p3.innerHTML="掌握技能:"+select_1;//输出掌握技能;
		        var password=document.getElementById("password").value;
				var p4=document.getElementById("demo4");
				p4.innerHTML="密码:"+password;
				var radio=document.getElementsByName("网站");//按照name属性获取该radio的集合
				var p5=document.getElementById("demo5");
				var s;
		        for(let q=0;q<radio.length;q++ ){
					if(radio[q].checked){
						s=radio[q].value;
					}
				}
		       p5.innerHTML="默认搜索:"+s;
               var p6=document.getElementById("demo6");
               var technology=document.getElementById("technology");
		       var s2=document.getElementById("s2");
		
		       var num1=technology.selectedIndex;// 选中索引
		       var num2=s2.selectedIndex;
		
		       ag1=technology.options[num1].value;// 选中值
		       ag2=s2.options[num2].value;
		
		      p6.innerHTML="最想了解的技术:"+ag1+"->"+ag2;
	}
	
	reset.onclick=function(){
		var p=document.getElementById("demo");
		p.innerHTML=""
		var p2=document.getElementById("demo2");
		p2.innerHTML=""
		var p3=document.getElementById("demo3");
		p3.innerHTML=""
		var p4=document.getElementById("demo4");
		p4.innerHTML=""
		var p5=document.getElementById("demo5");
		p5.innerHTML=""
		var p6=document.getElementById("demo6");
		p6.innerHTML=""
	}
	</script>

Document对象

document对象的属性

访问Document对象属性的语法格式为:document.propertyName

属性说明
title表示文档的标题
URL表示文档对应的URL
domain表示当前文档的域名
lastModified表示最后修改文档的时间
cookie表示与文档相关的cookie
all表示文档中所有HTML标记符的数组
applets表示文档中所有applets的信息,每一个applet都是这个数组中的一个元素
anchors表示文档中所有带name属性的超链接的数组
froms表示文档中所有的表单信息,每一个表单都是这个数组的一个元素
images表示文档中所有的图像信息,每一个图像都是这个数组的一个元素
links表示文档中所有的超链接信息,每一个超链接都是这个数组的一个元素
referrer表示连接到当前文档的URL
embeds表示文档中所有的嵌入对象的信息,每一个嵌入对象都是这个数组的一个元素

document对象的常用方法

1.getElementById(“id”)方法
通过HTML元素的id属性访问元素。

2.getElementsByName(“name”)方法
适用于返回HTML元素中指定name属性的元素数组,而且getElementsByName()仅用于input、radio、checkbox等元素对象。

3.getElementByTagName(tagname)方法
getElementByTagName方法返回指定HTML标记名的元素数组,通过遍历这个数组获得每一个单独的子元素。

DOM Element的常用方法

1.appendChild(node)方法
appendChild方法是向当前节点对象追加节点,经常用于给页面动态的添加内容。

2.removeChild(childreference)方法
removeChild方法是删除当前节点下的某个子节点,并返回被删除的节点。

3.replaceChild(newChild,oldChild)方法
replaceChild方法是把当前节点的一个子节点替换成另一个节点。

4.insertBefore(newElement,targetElement)方法
insertBefore方法是在当前节点中插入一个新节点。

5.cloneNode(deepBoolean)方法
cloneNode方法是复制并返回当前节点的复制节点。该方法复制原来节点的属性值,包括ID属性,所以在把这个节点当新节点加到document之前,一点要修改ID属性,以便使ID属性保持唯一。

Form对象

表单对象的属性、方法和事件

属性、方法和事件说明
name属性表示表单的名称
length属性表示表单中元素的数目
action属性表示表单提交时执行的动作
elements属性表示表单中所有控件元素的数组,数组下标就是控件元素在HTML源文件中的序号
encoding属性表示表单数据的编码类型
method属性表示发送表单的HTTP方法,取值为get或post
target属性表示用来显示表单结果的目标窗口或框架,取值可以是_self,_parent,_top,_blank
reset()属性将所有表单控件元素的值重新设置为其默认值,相当于单击表单中的“重置”按钮
submit()属性提交表单,相当于单击表单中的“提交”按钮
onReset属性单击“重置”按钮时触发
onSubmit属性单击“提交”按钮时触发
  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

这个昵称我想了20分钟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值