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>