Java Web基础:第十八讲 JavaScript处理(一)

本文内容摘自:《Java Web开发教程——入门与提高篇(JSP+Servlet)》

作为一门语言,JavaSript 的功能非常强大。下面通过几个常用的例子来展示一下JavaScript 在客户端的处理。
处理的基本过程如下:
l         根据要完成的功能编写相应的方法;
l         在相应的元素上添加事件关联代码,例如 <body οnlοad="init()"> 就表示加载 body 的时候调用 init 方法 。常用的事件如表4.1 所示:
4.1 JavaScript 事件及对应的方法

事件对应的方法
事件
支持的页面元素
onclick
鼠标单击时
所有元素
ondbclick
鼠标双击时
所有元素
onchange
显示的值改变时
表单元素
onfocus
窗口或元素获得焦点时
<body> 和表单元素
onblur
窗口或元素失去焦点时
<body> 和表单元素
onload
文档, 图像, 或对象加载完毕时
<body>, <frameset>, <img>, <iframe>, <object>
onsubmit
表单提交时
<form>
onunload
文档卸载时
<body>, <frameset>

实例:复选框全选与取消
应用背景:页面中有多个复选矿。希望快速选择所有,都不选择。
典型例子:基于Web 的邮件客户端,在管理邮件的时候,可以选择所有邮件,或者取消选择。
实现的基本思路:得到所有的复选框,使用他们的checked 属性,设置为true (全选)或者false (不选)。
<html>
<head>
 
<script language="JavaScript">
<!--
//CheckBox 全选
function selectAll(formName, cbName) {
    var o = document.forms(formName).item(cbName);
    if (o.length) {// 判断是否只有一项
       for (i=0; i<o.length; i++) {
           document.forms(formName).item(cbName)[i].checked = true;
       }
    } else {
       o.checked = true;
    }
}
//CheckBox 取消全选
function unSelectAll(formName, cbName) {
    var o = document.forms(formName).item(cbName);
    if (o.length) {// 判断是否只有一项
       for (i=0; i<o.length; i++) {
           document.forms(formName).item(cbName)[i].checked = false;
       }
    } else {
       o.checked = false;
    }
}
 
//-->
</script>
</head>
 
<body>
<form name="f1">
<input type="checkbox" name="interest" value="1"> 旅游 <br>
<input type="checkbox" name="interest" value="2"> 音乐 <br>
<input type="checkbox" name="interest" value="3"> 运动 <br>
<input type="button" value=" 全选 " οnclick="selectAll('f1', 'interest')">
<input type="button" value=" 取消全选 " οnclick="unSelectAll('f1', 'interest')">
</form>
</body>
</html>
实例:联动菜单
应用背景:在页面中有多个下拉菜单,某个菜单的值的变化会影响其他菜单的值的变化。
典型例子:地址的选择通常是先选择省份,再选择城市。类型的选择通常先选择大的分类,然后再选择小的分类。
实现的基本思路:
l         为主菜单添加onchange 事件,这样在主菜单中选项发生改变的时候,调用JavaScript 函数来修改被动菜单的选项,代码中的 οnchange="changeCity()" 完成该功能
l         JavaScript 函数中根据主菜单的选项确定被动菜单的选项,主要是动态赋值,参见代码中的注释。
...
 <script language="javascript" type="text/javascript">
 function changeCity(){
     // 定义主菜单的内容
     var province = [" 辽宁 "," 陕西 "," 山东 "];
     // 定义被动菜单可能的内容
     var citys = [[" 沈阳 "," 大连 "," 鞍山 "],[" 西安 "," 咸阳 "," 宝鸡 "," 汉中 "],[" 青岛 "," 济南 "," 烟台 "," 威海 "," 泰安 "]];
     // 获取主菜单中被选择的项
     selected = document.getElementById("province").value;
     // 设置被动菜单的选项个数
     city.length=citys[selected-1].length;
     // 为被动菜单的每个选项赋值
     for(i=0;i<citys[selected-1].length;i++)
     {
        city.options[i].value = i+1; // 显示信息
        city.options[i].text = citys[selected-1][i]; //
     }
 }
</script>
...
    请选择您所在的城市:
    <select name="province" οnchange="changeCity()">
       <option value="1" selected> 辽宁 </option>
       <option value="2"> 陕西 </option>
       <option value="3"> 山东 </option>
    </select>
    <select name="city">
       <option value="1" selected> 沈阳 </option>
       <option value="2"> 大连 </option>
       <option value="3"> 鞍山 </option>      
    </select>   
...
李绪成 CSDN Blog http://blog.csdn.net/javaeeteacher
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值