JavaScript事件响应与交互

目录
文章目录隐藏
  1. 什么是事件
  2. 鼠标单击事件(onclick)
  3. 鼠标经过事件(onmouseover)
  4. 鼠标移开事件(onmouseout)
  5. 光标聚焦事件(onfocus)
  6. 失焦事件(onblur)
  7. 内容选中事件(onselect)
  8. 文本框内容改变事件(onchange)
  9. 加载事件(onload)
  10. 卸载事件(onunload)
  11. 编程练习

JavaScript 和 HTML 之间的交互是通过用户和浏览器操作界面引发的事件来处理,本文将介绍事件处理的概念以及常用触发事件。

什么是事件

JavaScript 创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。

比如说,当用户单击按钮或者提交表单数据时,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果。

主要事件表:

主要事件表

鼠标单击事件(onclick)

onclick 是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件。同时 onclick 事件调用的程序块就会被执行,通常与按钮一起使用。比如,我们单击按钮时,触发 onclick 事件,并调用两个数和的函数 add2()。代码如下:

<html>
<head>
   <script type="text/javascript">
      function add2(){
        var numa,numb,sum;
        numa=6;
        numb=8;
        sum=numa+numb;
        document.write("两数和为:"+sum);  }
   </script>
</head>
<body>
   <form>
      <input name="button" type="button" value="点击提交" onclick="add2()" />
   </form>
</body>
</html>

注意: 在网页中,如使用事件,就在该元素中设置事件属性。

鼠标经过事件(onmouseover)

鼠标经过事件,当鼠标移到一个对象上时,该对象就触发 onmouseover 事件,并执行 onmouseover 事件调用的程序。

现实鼠标经过”确定”按钮时,触发 onmouseover 事件,调用函数 info(),弹出消息框,代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> 鼠标经过事件 </title>
<script type="text/javascript">
    function message(){
      confirm("请输入密码后,再单击确定!"); }
</script>
</head>
<body>
<form>
密码:<input name="password" type="password" >
<input name="确定" type="button" value="确定" onmouseover="message()"/>
</form>
</body>
</html>

鼠标移开事件(onmouseout)

鼠标移开事件,当鼠标移开当前对象时,执行 onmouseout 调用的程序。

当把鼠标移动到”登录”按钮上,然后再移开时,触发 onmouseout 事件,调用函数 message(),代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>鼠标移开事件 </title>
<script type="text/javascript">
  function message(){
    alert("不要移开,点击后进行码云笔记!"); }
</script>
</head>
<body>
<form>
  <a href="https://mybj123.com" onmouseout="message()">点击我</a>
</form>
</body>
</html>

光标聚焦事件(onfocus)

当网页中的对象获得聚点时,执行 onfocus 调用的程序就会被执行。

如下代码, 当将光标移到文本框内时,即焦点在文本框内,触发 onfocus 事件,并调用函数 message()。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> 光标聚焦事件 </title>
  <script type="text/javascript">
    function message(){
	  alert("请选择,您现在的职业!");
	}
  </script>
</head>
<body>
请选择您的职业:<br>
  <form>
    <select name="career" onfocus="message()"> 
      <option>学生</option> 
      <option>教师</option> 
      <option>工程师</option> 
      <option>演员</option> 
      <option>会计</option> 
    </select> 
  </form>
</body>
</html>

失焦事件(onblur)

onblur 事件与 onfocus 是相对事件,当光标离开当前获得聚焦对象的时候,触发 onblur 事件,同时执行被调用的程序。

如下代码, 网页中有用户和密码两个文本框。当前光标在用户文本框内时(即焦点在文本框),在光标离开该文本框后(即失焦时),触发 onblur 事件,并调用函数 message()。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> 失焦事件 </title>
<script type="text/javascript">
  function message(){
    alert("请确定已输入密码后,在移开!"); }
</script>    
</head>
<body>
  <form>
   用户:<input name="username" type="text" value="请输入用户名!" onblur="message()">
   密码:<input name="password" type="text" value="请输入密码!" >
  </form>
</body>
</html>

内容选中事件(onselect)

选中事件,当文本框或者文本域中的文字被选中时,触发 onselect 事件,同时调用的程序就会被执行。

如下代码,当选中用户文本框内的文字时,触发 onselect 事件,并调用函数 message()。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> 内容选中事件 </title>
<script type="text/javascript">
  function message(){
    alert("您触发了选中事件!"); }
</script>    
</head>
<body>
  <form>
  个人简介:<br>
   <textarea name="summary" cols="60" rows="5" onselect="message()">请写入个人简介,不少于 200 字!</textarea>
  </form>
</body>
</html>

文本框内容改变事件(onchange)

通过改变文本框的内容来触发 onchange 事件,同时执行被调用的程序。

如下代码,当用户将文本框内的文字改变后,弹出对话框“您改变了文本内容!”

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> 文本框内容改变事件 </title>
<script type="text/javascript">
  function message(){
    alert("您改变了文本内容!"); }
</script>    
</head>
<body>
  <form>
  个人简介:<br>
   <textarea name="summary" cols="60" rows="5" onchange="message()">请写入个人简介,不少于 200 字!</textarea>
  </form>
</body>
</html>

加载事件(onload)

事件会在页面加载完成后,立即发生,同时执行被调用的程序。
注意:

1. 加载页面时,触发 onload 事件,事件写在<body>标签内。

2. 此节的加载页面,可理解为打开一个新页面时。
如下代码,当加载一个新页面时,弹出对话框“加载中,请稍等…”。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> 加载事件 </title>
<script type="text/javascript">
  function message(){
    alert("加载中,请稍等…"); }
</script>    
</head>
<body onload="message()">
  欢迎学习 JavaScript。
</body>
</html>

卸载事件(onunload)

当用户退出页面时(页面关闭、页面刷新等),触发 onUnload 事件,同时执行被调用的程序。

注意:不同浏览器对 onunload 事件支持不同。

如下代码,当退出页面时,弹出对话框“您确定离开该网页吗?”。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> 卸载事件 </title>
<script type="text/javascript">   
     window.onunload = onunload_message;   
     function onunload_message(){   
        alert("您确定离开该网页吗?");   
    }   
</script>   
</head>
<body>
  欢迎学习 JavaScript。
</body>
</html>

编程练习

使用 JS 完成一个简单的计算器功能。实现 2 个输入框中输入整数后,点击第三个输入框能给出 2 个整数的加减乘除。

提示:获取元素的值设置和获取方法为:例:赋值:document.getElementById(“id”).value = 1; 取值:var = document.getElementById(“id”).value;

思路:

第一步: 创建构建运算函数 count()。

第二步: 获取两个输入框中的值和获取选择框的值。

提示:document.getElementById( id 名 ).value 获取或设置 id 名的值。
第三步: 获取通过下拉框来选择的值来改变加减乘除的运算法则。

提示:使用 switch 判断运算法则。
第四步: 通过 = 按钮来调用创建的函数,得到结果。

注意: 使用 parseInt()函数可解析一个字符串,并返回一个整数。

HTML 代码:

<input type='text' id='txt1' /> 
   <select id='select'>
		<option value='+'>+</option>
		<option value="-">-</option>
		<option value="*">*</option>
		<option value="/">/</option>
   </select>
   <input type='text' id='txt2' /> 
   <input type='button' value=' = ' onclick="count()" /> <!--通过 = 按钮来调用创建的函数,得到结果--> 
   <input type='text' id='fruit' />

JavaScrip 代码:

function count(){
    var oTxt1 = document.getElementById("txt1").value;
    var oTxt2 = document.getElementById("txt2").value;
    var oSlt = document.getElementById("select").value;
    var result = "";
    switch(oSlt) {
        case "+":
            result = parseFloat(oTxt1) + parseFloat(oTxt2);
            break;
        case "-":
            result = parseFloat(oTxt1) - parseFloat(oTxt2);
            break;
        case "*":
            result = parseFloat(oTxt1) * parseFloat(oTxt2);
            break;
        default:
            result = parseFloat(oTxt1) / parseFloat(oTxt2);
    }
    document.getElementById("fruit").value = result;
    
   }

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » JavaScript事件响应与交互

发表回复