JavaScript实例第五天

2021.10.23

实例一、实现电话拨号键盘

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>实现电话拨号键盘</title>
</head>
	<body>
<div class="css-div-button">
	<button>1</button>
	<button>2</button>
	<button>3</button><br>
	<button>4</button>
	<button>5</button>
	<button>6</button><br>
	<button>7</button>
	<button>8</button>
	<button>9</button><br>
	<button>*</button>
	<button>0</button>
	<button>#</button><br>
	<input type="text" id="id-input-tel" readonly>
	</div>

</body>
	<script type="text/javascript">
	window.onload=function(){//在页面加载完成后执行
		var arrTel=["1","2","3","4","5","6","7","8","9","*","0","#"];
		var arrBtm=document.getElementsByTagName("button");
		var tel=document.getElementById("id-input-tel");
		for(var i=0;i<arrBtm.length;i++){
			arrBtm[i].index=i;//index返回指定元素相对于其他元素的index位置
			arrBtm[i].onclick=function(){
				tel.value+=arrTel[this.index];//前面如果没有写的arrBtm[i].index=i;此处的this.index会返回一个underfined值,所以在之前要指定arrBtm[i].index=i,后面才能用上this.index
			}
			
		}
	}
	</script>
	
</html>

js中div[i].index=i是什么意思

index是一个自定义属性,定义为索引值,索引值与元素一一对应;我觉得就像是目录和章节的关系,对元素进行编号,

.index是返回索引号,与元素一一对应

实例二、为按钮添加背景颜色

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>为按钮添加背景颜色</title>
</head>

<body>
	<div clas="css-div-button">
	<button>Red</button>
	<button>Yello</button>
	<button>Blue</button>
	<button  id="1">Black</button>
	<button  id="2">Green</button>
	
	</div>
</body>
	<script type="text/javascript">
	var colorbtn=["Red","Yellow","Blue"]
	var arrbtn=document.getElementsByTagName("button")
	
	
	for(var i=0;i<arrbtn.length;i++){
		
		
		arrbtn[i].style.backgroundColor=colorbtn[i];
		
		}
	var colorbtn=document.getElementById("1");
		colorbtn.onclick=function(){
		colorbtn.style.backgroundColor="Black";
		}
	var colorbtn2=document.getElementById("2");
		colorbtn2.onclick=function(){
			colorbtn2.style.backgroundColor="Green"
			
		}
		
	
	
	</script>
</html>

当点击button触发事件时,建议先在js中连接所要的id元素对象,用.οnclick=function()来写。
我刚开始写点击改变背景颜色时,是在button里写的οnclick=“xxx”,然后在js里调用方法function xxx(){}发现背景颜色没有改变,原因想了半天也不知道为什么。
PS:在用button的方法时别用window.οnlοad=function()方法,会在你button未点击时先加载一遍程序,直接调用了点击事件,应该也有办法可以避免,我学艺尚浅,暂时不知道怎么避免这个问题。

实例三、不同按钮提交到不同的表单地址

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>不同按钮提交到不同的表单地址</title>
</head>

<body>
	<form name="formMulti" method="get" enctype="multipart/form-data" action=""><!-- enctype就是encodetype就是编码类型的意思。
 
multipart/form-data是指表单数据中由多部分构成,既有文本数据,又有文件等二进制数据,action是发送的地址 -->
	<p>First Name:&nbsp;&nbsp;<input type="text" name="fname" value="King"></p>
		<p>Last Name:&nbsp;&nbsp;<input type="text" name="lname" value="Wang"></p>
		<button type="submit" name="btnCh" onClick="submit_ch()">提交(CH)</button>
		<button type="submit" name="btnEn" onClick="submit_en()">提交(EN)</button>
	
	</form>
</body>
	<script type="text/javascript">
		function submit_ch(){
			document.formMulti.action="multiForm-ch.php"
			document.formMulti.submit();
			
			
		}
	function submit_en(){
			document.formMulti.action="multiForm-en.php"//提交多个表单的地址
			document.formMulti.submit();
			
			
		}
	
	</script>
</html>

enctype是编码类型的意思

实例四、避免回车键自动提交表单

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>避免回车键自动提交表单</title>
</head>

<body>
	<form name="formNoEnter" method="get" action="form-no-enter.php">
	<p>First Name:<input type="text" name="fname" id="id-fname" value="King"></p>
		<p>Last Name:<input type="text" name="lname" id="id-lname" value="Wang"></p>
		<button type="submit" id="id-submit">提交表单</button>
	</form>
</body>
	<script type="text/javascript">
	window.onload=function(){
		document.formNoEnter.onkeypress=function(ev){//document.formNoEnter(form的name值)
			//onkeypress在用户按下并放开任何数字字母键时发生,系统按键无法识别,此处为无法识别回车键,所以不会按下回车不会触发



			var ev=window.event||ev;//event表示事件的状态
			if(ev.keyCode==13||ev.which==13){//keyCode的值对应键盘事件的内码,13为回车键
				console.log("Info:press enter no submit.");
				return false;
				
			}
			
		}
		
	}
	
	</script>
</html>
1.按照触发时机判断。

onkeyup在用户放开任何先前按下的键(包括系统按键,系统按键指箭头键,功能键)时发生;

onkeydown在用户按下任何键时发生;

onkeypress在用户按下并放开任何数字字母键时发生,系统按键无法识别。

2.响应时是否被系统接收。

onkeydown,onkeypress事件响应的时候输入的字符并没有被系统接收;

onkeyup响应的时候输入流已经被系统接收(包括输入系统按键时)。

实例五、按钮在单击后自动失效

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>按钮在单击后自动失效</title>
</head>

<body>
	<div>测试按钮:
		<button id="id-click-once">Click Once</button>
	
	</div>
	<div>重新激活:
		<button id="id-re-active">Re-Active</button>
	</div>
</body>
	<script type="text/javascript">
	document.getElementById("id-click-once").onclick=function(e){
		
		e.target.disabled=true;//document.getElementById("id-click-once").disabled=true两种写法//target 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素、文档或窗口
		//如果一个输入项的disabled设为true,则该表单输入项不能获取焦点,用户的所有操作(鼠标点击和键盘输入等)对该输入项都无效
		
	};
		document.getElementById("id-re-active").onclick=function(e){
			document.getElementById("id-click-once").disabled=false;
		};
	</script>
</html>

利用了disabled属性,当disabled=true时表示不能获取焦点,用户的所有操作都无效

实例六、为删除功能按钮添加确认提醒

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>为删除功能按钮添加确认提醒</title>
</head>

<body>
	<button id="id-btn-confirm">
	删除按钮
	</button>
	<p>删除按钮----删除内容</p>
</body>
	<script type="text/javascript">
	document.getElementById("id-btn-confirm").onclick=function(){
		if(confirm("please confirm to del?")){//confirm提示框,当选择正确,if收到true则会执行下面语句
			document.getElementsByTagName("p")[0].innerText=""//innerText改写p标签内的内容
		}
	}
	</script>
</html>

实例七、

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript已经成为了目前最为流行的一种客户端脚本语言,它可以非常轻松的与HTML结合使用,实现丰富的交互效果。jquery是基于JavaScript的一种开源的轻量级前端框架,它提供了非常丰富的API函数,可以简化JavaScript开发的过程,也提高了效率。HTML5则是在原有HTML标准的基础上推出的新一代Web标准,它提供了大量的新特性,例如语意化标签、增强型表单控件、单页面应用、Canvas等等,可以更方便地开发出更加强大、响应式的Web页面。 Node.js则是一种基于Chrome V8引擎的JavaScript运行环境,它可以让开发人员在同一套代码上开发前后端,实现高效的Web应用程序。Node.js提供了一种事件驱动、非阻塞式I/O的编程方式,非常适合于开发各种高容量、实时的Web应用程序。 在JavaScript实战方面,上述技术的应用非常广泛。例如,可以使用JavaScript来实现从简单的表单验证、页面动画到更加复杂的交互效果等等。而jQuery的应用则可以大大简化DOM操作、动画、事件等的代码量。HTML5的应用可以让页面更加生动、更加响应式,而且使用Canvas制作游戏和动画等也非常流行。而在服务器端,Node.js的使用则可以提高策略性和效率,适合于跨平台的快速开发。 因此,精通这些技术,对于前端开发人员和Web开发人员,都是非常重要的。这样可以实现更加高效、生动和现代化的Web应用程序。如果你还没有开始学习这些技术,那么可以尝试着寻找相关的教程和实例,来迅速入门。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值