JS 事件 —— 表单事件

Web前端基础 学习笔记

一、表单事件


1.1、onsubmit(绑定提交事件)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JS 事件-鼠标事件</title>
	<script>
		window.onload = function(){	
		
			var oForm = document.getElementsByTagName("form")[0];
			var aInput = document.getElementsByTagName("input")[0];

		// 绑定提交事件
			oForm.onsubmit = function(){
				console.log("submit");
				// 每次提交都会刷新页面,所以 return False 使其提交失败
				// 但提交事件依然发生(为了方便观察才这么做)
				return false;											// 可以注释观察效果
			}
			
		}
	</script>
</head>
<body>
	<div id="test" style="background-color: pink; width: 200px; height: 200px;">
	</div>
	<br><hr><br>
	<form action="http://www.baidu.com">
		<input type="text">
		<input type="submit">
	</form>
</body>
</html>

1.2、onfocus(聚焦) 与 onblur(失焦)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JS 事件-鼠标事件</title>
	<script>
		window.onload = function(){	
		
			var oForm = document.getElementsByTagName("form")[0];
			var aInput = document.getElementsByTagName("input")[0];

		// 焦点(鼠标点击文本框,使其为输入状态)
			aInput.onfocus = function(){
				console.log("focus(焦点事件)");
			}

		// 失焦(鼠标点击文本框外,使其退出输入状态)
			aInput.onblur = function(){
				console.log("onblur(失焦事件)");
			}
			
		}
	</script>
</head>
<body>
	<div id="test" style="background-color: pink; width: 200px; height: 200px;">
	</div>
	<br><hr><br>
	<form action="http://www.baidu.com">
		<input type="text">
		<input type="submit">
	</form>
</body>
</html>

1.3、onchange( 内容改变(在文本框输入数据) + 失焦 才会触发 )

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JS 事件-鼠标事件</title>
	<script>
		window.onload = function(){	
		
			var oForm = document.getElementsByTagName("form")[0];
			var aInput = document.getElementsByTagName("input")[0];

		// 内容改变(文本框输入数据) + 失焦 才会触发
			aInput.onchange = function(){
				console.log("change");
			}
			
		}
	</script>
</head>
<body>
	<div id="test" style="background-color: pink; width: 200px; height: 200px;">
	</div>
	<br><hr><br>
	<form action="http://www.baidu.com">
		<input type="text">
		<input type="submit">
	</form>
</body>
</html>

在这里插入图片描述

1.4、oninput(输入事件)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JS 事件-鼠标事件</title>
	<script>
		window.onload = function(){	
		
			var oForm = document.getElementsByTagName("form")[0];
			var aInput = document.getElementsByTagName("input")[0];

		// 输入事件
			aInput.oninput = function(){
				console.log("input");
			}
			
		}
	</script>
</head>
<body>
	<div id="test" style="background-color: pink; width: 200px; height: 200px;">
	</div>
	<br><hr><br>
	<form action="http://www.baidu.com">
		<input type="text">
		<input type="submit">
	</form>
</body>
</html>

在这里插入图片描述




二、表单案例


2.1、要在浏览器实现如下功能:

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JS 表单事件(提交显示)</title>
	<style>
		div{
			width: 300px;
			height: 200px;
			border: 3px solid #CECECE;
		}
	</style>
</head>
<body>
	<div></div><br>
	<input type="text">
	<input type="button" value="上去">

	<script type="text/javascript">
		var oDiv = document.getElementsByTagName("div")[0];
		var aInput = document.getElementsByTagName("input");


		// 第二个 input 触发事件
		aInput[1].onclick = function(){
			// 控制台显示第一个 input 的内容
			console.log(aInput[0].value);
			oDiv.innerHTML = oDiv.innerHTML + aInput[0].value;			// 添加的顺序会影响显示的顺序
			// 可以简写为:   oDiv.innerHTML += aInput[0].value;(+ "<br>" 可以换行)

			aInput[0].value = "";										// 内容提交后,清空输入框
		}

		// 在输入键盘按下 enter 提交数据
		aInput[0].onkeydown = function(e){
			if (e.keyCode == 13) {
				oDiv.innerHTML += aInput[0].value + "<br>";
				aInput[0].value = "";
			}
		}
	</script>
</body>
</html>

上述代码,存在冗余(重复代码),所以一般会把冗余的代码封装成函数。

2.2、改进

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JS 表单事件(提交显示)</title>
	<style>
		div{
			width: 300px;
			height: 200px;
			border: 3px solid #CECECE;
		}
	</style>
</head>
<body>
	<div></div><br>
	<input type="text">
	<input type="button" value="上去">

	<script type="text/javascript">
		var oDiv = document.getElementsByTagName("div")[0];
		var aInput = document.getElementsByTagName("input");
		
		function commentTxt(){
			oDiv.innerHTML += aInput[0].value + "<br>";
			aInput[0].value = "";
		}

		aInput[1].onclick = commentTxt;

		aInput[0].onkeydown = function(e){
			if (e.keyCode == 13){
				commentTxt();
			}
		}
	</script>
</body>
</html>
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值