设计网页界面, 在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属性 单击“提交”按钮时触发

猜你喜欢

转载自blog.csdn.net/m0_61684063/article/details/124123358
今日推荐