本系列博客汇总在这里:JavaScript 汇总
事件
一、简介
JavaScript 使我们有能力创建动态页面。事件是可以被 JavaScript 侦测到的行为。网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件。比方说,我们可以在用户点击某按钮时产生一个 onClick 事件来触发某个函数。事件在 HTML 页面中定义。
二、JavaScript的事件
1、onclick
鼠标点击一个元素时执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function myclick(obj)
{
alert(obj.value);
}
</script>
</head>
<body>
<input type="button" value="点击" onclick="myclick(this)">
<input id="b1" type="button" value="点击1">
</body>
<script type="text/javascript">
document.getElementById("b1").onclick = function()
{
alert(1);
}
</script>
</html>
2、onblur
使用在表单元素中,当元素失去焦点的时候执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function myblur(obj)
{
var val = obj.value;
//正则表达式
var reg = /^\d{3,5}$/;
if(!reg.test(val))
{
document.getElementById("tip").innerHTML = "请输入3到5位的数字";
}
else
{
document.getElementById("tip").innerHTML = "";
}
}
</script>
</head>
<body>
<input type="text" onblur="myblur(this)"><span id="tip"></span>
</html>
3、onchange
使用在表单元素中,当某些东西改变是执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var yn = ["昆明","丽江","大理"];
var gx = ["南宁","崇左","柳州"];
var gz = ["贵阳","遵义","安顺"];
function mych(obj)
{
var opts = "";
if(obj.value == 1)
{
for(var i = 0; i < yn.length; i++)
{
opts = opts + "<option>"+yn[i]+"</option>"
}
}
else if(obj.value == 2)
{
for(var i = 0; i < gx.length; i++)
{
opts = opts + "<option>"+gx[i]+"</option>"
}
}
else if(obj.value == 3)
{
for(var i = 0; i < gz.length; i++)
{
opts = opts + "<option>"+gz[i]+"</option>"
}
}
document.getElementById("city").innerHTML = opts;
}
</script>
</head>
<body>
省:
<select id="province" onchange="mych(this)">
<option value="">请选择</option>
<option value="1">云南省</option>
<option value="2">广西省</option>
<option value="3">贵州省</option>
</select>
市:
<select id="city" onchange="mych(this)">
</select>
</html>
4、ondblclick
鼠标双击一个元素时执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
//双击
function dblclk()
{
alert(0);
}
</script>
</head>
<body>
<div style="border: 1px solid black; width: 100px;height: 100px;" ondblclick="dblclk()"></div>
</html>
5、onfocus
使用在表单元素中,当元素获得焦点时执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function myfocus(obj)
{
//可用于当鼠标在表格当中移动时的表格背景颜色的改变
obj.style.background = "yellow";
}
</script>
</head>
<body>
<input type="text" onfocus="myfocus(this)"><span id="tip"></span>
</html>
6、onkeydown
按下某个按键时执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function mykd(e)
{
var keyNum = null;
var keyChar = null;
//获得键盘上按下的键对应的ascii码
keyNum = window.event?e.keyCode : e.which;
keyChar = String.fromCharCode(keyNum);
alert(keyNum+"--->"+keyChar);
}
</script>
</head>
<!--
在页面中获得键盘上按下的键,把事件放在body上
-->
<body onkeydown="mykd(event)">
</body>
</html>
7、onkeyup
释放某个按键时执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function mykd(e)
{
var keyNum = null;
var keyChar = null;
//获得键盘上按下的键对应的ascii码
keyNum = window.event?e.keyCode : e.which;
/*keyChar = String.fromCharCode(keyNum);
alert(keyNum+"----------->"+keyChar); */
if(keyNum == 13)
{
//通过js来提交表单
document.getElementById("myform").submit();
}
}
</script>
</head>
<!--
在页面中获得键盘上按下的键,把事件放在body上
-->
<body onkeyup="mykd(event)">
<form id="myform" action="xxx.html" method="post">
用户:<input type="text" name="username" ><br>
密码:<input type="password" name="password" ><br>
<input type="submit" value="提交">
</form>
</body>
</html>
8、onload
在 body 标签中使用,载入页面的时候执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
//加载时执行的事件
function myload()
{
alert(8);
}
</script>
</head>
<!--
在页面中获得键盘上按下的键,把事件放在body上
-->
<body onload="myload()">
</body>
</html>
9、onselect
用在表单元素中,当元素被选择时执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function mys()
{
alert(0)
}
</script>
</head>
<body >
爱好:<input type="text" onselect="mys()" name="favor" value="1">
</body>
</html>
10、onmousedown
按下鼠标按键时执行。
11、onmousemove
鼠标光标在元素上移动时执行。
12、onmouseout
鼠标光标移开元素时执行。
13、onmouseover
鼠标光标移到元素上时执行。
14、onmouseup
当释放鼠标按键时执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function md()
{
alert(0)
}
function mu()
{
alert(8)
}
function mo()
{
alert(1)
}
function mout()
{
alert(2)
}
function mm()
{
alert(3)
}
</script>
</head>
<body >
<div style="border: 1px solid black; width: 100px;height: 100px;" onmousedown="md()">1</div>
<div style="border: 1px solid black; width: 100px;height: 100px;" onmouseup="mu()">2</div>
<!--
鼠标移动到元素上就触发
-->
<div style="border: 1px solid black; width: 100px;height: 100px;" onmouseover="mo()">3</div>
<div style="border: 1px solid black; width: 100px;height: 100px;" onmouseout="mout()">4</div>
<div style="border: 1px solid black; width: 100px;height: 100px;" onmousemove="mm()">5</div>
</body>
</html>
15、onsubmit
用在表单元素中,当表单提交时执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function mykd(e)
{
//设置是否提交表单的标志
var isSubmit = true;
var keyNum = null;
var keyChar = null;
//获得键盘上按下的键对应的ascii码
keyNum = window.event?e.keyCode : e.which;
if(keyNum == 13)
{
var reg = /^\d{3,5}$/;
//获得username
var username = document.getElementById("username").value;
//验证username是否合法
if(!reg.test(username))
{
document.getElementById("tip").innerHTML = "请输入3到5位的数字";
isSubmit = false;
}
if(isSubmit)
{
//通过js来提交表单
document.getElementById("myform").submit();
}
}
}
function mysubmit()
{
//设置是否提交表单的标志
var isSubmit = true;
//定义正则表达式
var reg = /^\d{3,5}$/;
//获得username
var username = document.getElementById("username").value;
//验证username是否合法
if(!reg.test(username))
{
document.getElementById("tip").innerHTML = "请输入3到5位的数字";
//把提交的标志设置成false
isSubmit = false;
}
return isSubmit;
}
</script>
</head>
<!--
在页面中获得键盘上按下的键,把事件放在body上
-->
<body onkeyup="mykd(event)">
<!--
onsubmit主要是作用在提交按钮上
-->
<form id="myform" action="xxx.html" onsubmit="return mysubmit()" method="post">
用户:<input type="text" name="username" id="username"><span id="tip"></span><br>
密码:<input type="password" name="password" ><br>
<input type="submit" value="提交">
</form>
</body>
</html>
如有错误,欢迎指正!