MLDN
课程咨询[孟老师]QQ 1031143579孟老师QQ课程咨询留言 课程咨询[徐老师 ]QQ 945313230
徐老师QQ课程咨询留言
课程咨询[刘老师 ]QQ 514543793
刘老师QQ课程咨询留言
java培训
JAVA报名特价
魔乐培训 高端JAVA培训 魔乐科技JAVA培训 -=> 资源中心 -=> JAVA SE技术专区 -=> JAVA网络编程 -=> 正文

JavaScript(二)

 发布日期:2008-11-6 8:51:00 发布者:[IT电子教育门户]   评论:[]  浏览:
3.3、操作事件(用在表单交互上)
 对于JavaScript来说,大部分情况,所有的函数都是由事件触发的。
 在JavaScript之中,所有的事件都是以onXxx命名的,例如,下面的程序完成如果用户打开此页面则提示欢迎信息,用户离开之后,则提示再见信息。
 • 打开页面:onLoad,此事件存在于body元素里。
 • 关闭页面:onUnload,此事件存在于body元素里。
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  alert("您好,欢迎光临!") ;
 }
 function fun2(){
  alert("拜拜,别再来了!") ;
 }
</script>
</HEAD>
<BODY onLoad="fun1()" onUnload="fun2()">
</BODY>
</HTML>
 在JavaScript之中,还有事件就是单击事件:onClick,例如以下代码:
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  alert("我被击中了。.!") ;
 }
</script>
</HEAD>
<BODY>
 <h2><a href="#" onClick="fun1()">按我</a></h2>
 <input type="button" onClick="fun1()" value="来吧">
</BODY>
</HTML>
 事件的主要功能在表单交互上使用的是最频繁的,例如:现在定义一个表单,可以输入姓名,之后选择按钮,就可以进行信息的显示:
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  alert("姓名:" + document.myform.uname.value) ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 输入姓名:<INPUT TYPE="text" NAME="uname">
 <input type="button" value="显示" onClick="fun1()">
</FORM>
</BODY>
</HTML>
 既然是用户可以自己输入的信息,那么在之前的程序上就加上一个判断,如果输入的内容不为空,则显示,如果为空,则显示输入错误。
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  if(document.myform.uname.value!=""){
   alert("姓名:" + document.myform.uname.value) ;
  }else{
   alert("请输入姓名!") ;
  }
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 输入姓名:<INPUT TYPE="text" NAME="uname">
 <input type="button" value="显示" onClick="fun1()">
</FORM>
</BODY>
</HTML>
 表单中可能包含单选钮,例如:性别。
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  if(document.myform.uname.value!=""){
   alert("姓名:" + document.myform.uname.value) ;
  }else{
   alert("请输入姓名!") ;
  }
  if(document.myform.sex[0].checked){
   alert("性别:" + document.myform.sex[0].value) ;
  }else if(document.myform.sex[1].checked){
   alert("性别:" + document.myform.sex[1].value) ;
  }else{
   alert("性别:" + document.myform.sex[2].value) ;
  }
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 输入姓名: <INPUT TYPE="text" NAME="uname"><br>
 选择性别: <INPUT TYPE="radio" NAME="sex" value="男" checked>男
    <INPUT TYPE="radio" NAME="sex" value="女">女
    <INPUT TYPE="radio" NAME="sex" value="中性">中性<br>
 <input type="button" value="显示" onClick="fun1()">
</FORM>
</BODY>
</HTML>
注意:
 如果在表单中出现了一组的相同名称的表单控件,则一定按照数组的方式进行处理。
 在表单上再加上个人兴趣,一个人可能有多个兴趣:
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  if(document.myform.uname.value!=""){
   alert("姓名:" + document.myform.uname.value) ;
  }else{
   alert("请输入姓名!") ;
  }
  if(document.myform.sex[0].checked){
   alert("性别:" + document.myform.sex[0].value) ;
  }else if(document.myform.sex[1].checked){
   alert("性别:" + document.myform.sex[1].value) ;
  }else{
   alert("性别:" + document.myform.sex[2].value) ;
  }
  var s = "兴趣是:"  ;
  for(var x=0;x<document.myform.inst.length;x++){
   if(document.myform.inst[x].checked){
    s += document.myform.inst[x].value + "、" ;
   }
  }
  alert(s) ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 输入姓名: <INPUT TYPE="text" NAME="uname"><br>
 选择性别: <INPUT TYPE="radio" NAME="sex" value="男" checked>男
    <INPUT TYPE="radio" NAME="sex" value="女">女
    <INPUT TYPE="radio" NAME="sex" value="中性">中性<br>
 选择兴趣: <INPUT TYPE="checkbox" NAME="inst" value="唱歌">唱歌
    <INPUT TYPE="checkbox" NAME="inst" value="跳舞">跳舞
    <INPUT TYPE="checkbox" NAME="inst" value="游泳">游泳<br>    
 <input type="button" value="显示" onClick="fun1()">
</FORM>
</BODY>
</HTML>
 那么除了以上的事件之外,JavaScript中也提供了一些其他的事件:
 • onChange:被改变的时候调用,在输入的文本框和下拉列表框上有此事件
例如:以下代码
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  alert("事件被调用") ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 输入姓名: <INPUT TYPE="text" NAME="uname" onChange="fun1()"><br>
 输入密码: <INPUT TYPE="text" NAME="upass"><br>
 选择城市: <SELECT name="city" onChange="fun1()">
     <OPTION VALUE="BJ">北京</OPTION>
     <OPTION VALUE="NJ">南京</OPTION>
    </SELECT>
</FORM>
</BODY>
</HTML>
 • 失去焦点:onBlur
 • 得到焦点:onFocus
例如:以下代码
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  alert("失去焦点!") ;
 }
 function fun2(){
  alert("得到焦点!") ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 输入姓名: <INPUT TYPE="text" NAME="uname" onBlur="fun1()" onFocus="fun2()"><br>
 输入密码: <INPUT TYPE="text" NAME="upass"><br>
</FORM>
</BODY>
</HTML>
 鼠标事件:鼠标经过、按下、松开
 • onMouseOver:鼠标进入的时候调用
 • onMouseOut:鼠标离开的时候调用
 • onMouseUp:鼠标松开
 • onMouseDown:鼠标按下
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  alert("mouse over") ;
 }
 function fun2(){
  alert("mouse out") ;
 }
 function fun3(){
  alert("mouse up") ;
 }
 function fun4(){
  alert("mouse down") ;
 }
</script>
</HEAD>
<BODY>
 <h1><a href="#" onMouseOver="fun1()">MOUSEOVER</a></h1>
 <h1><a href="#" onMouseOut="fun2()">MOUSEOUT</a></h1>
 <h1><a href="#" onMouseUp="fun3()">MOUSEUP</a></h1>
 <h1><a href="#" onMouseDown="fun4()">MOUSEDOWN</a></h1>
</BODY>
</HTML>
 在整个事件的操作中,程序员最应该关心的事件就是onSubmit事件,因为其直接与表单的验证有关联。例如:在用户输入表单的时候,如果输入的内容不正确,则不应该让表单进行提交,应该给予拦截。
例如:以下代码
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function validate(){
  if(document.myform.uname.value==""){
   alert("姓名不能为空!") ;
   return false ;
  }
  return true ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform" action="success.htm" onSubmit="return validate()">
 输入姓名:<INPUT TYPE="text" NAME="uname">
 <input type="submit" value="提交">
</FORM>
</BODY>
</HTML>
 以上程序已经完成了表单的验证,但是一般情况下,输入用户名都是有长度要求的,例如:6~15位。
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function validate(){
  if(!(/\w{6,15}/.test(document.myform.uname.value))){
   alert("请输入合法的姓名") ;
   return false ;
  }
  return true ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform" action="success.htm" onSubmit="return validate()">
 输入姓名:<INPUT TYPE="text" NAME="uname">
 <font color="red">长度为6~15位!</font><br>
 <input type="submit" value="提交">
</FORM>
</BODY>
</HTML>
 但是,以上代码中可以发现,在validate()函数里,到处都要写document.myform,所以此时,可以使用一个别名进行替换。
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function validate(f){
  if(!(/\w{6,15}/.test(f.uname.value))){
   alert("请输入合法的姓名") ;
   return false ;
  }
  return true ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform" action="success.htm" onSubmit="return validate(this)">
 输入姓名:<INPUT TYPE="text" NAME="uname">
 <font color="red">长度为6~15位!</font><br>
 <input type="submit" value="提交">
</FORM>
</BODY>
</HTML>
注意:
 对于取得表单输入信息的方法,也可以使用如下的语法格式:
• document.getElementById("表单元素ID") ;如果按照此语法编写,则在表单上要使用一个id属性的声明。AJAX中常用此语法。
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function validate(f){
  alert(document.getElementById("name").value) ;
  if(!(/\w{6,15}/.test(f.uname.value))){
   alert("请输入合法的姓名") ;
   return false ;
  }
  return true ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform" action="success.htm" onSubmit="return validate(this)">
 输入姓名:<INPUT TYPE="text" NAME="uname" id="name">
 <font color="red">长度为6~15位!</font><br>
 <input type="submit" value="提交">
</FORM>
</BODY>
</HTML>
 • onSelect事件:选择事件
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  alert("事件触发!!!") ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform" action="success.htm">
 输入姓名:<INPUT TYPE="text" NAME="uname" id="name" value="HELLO" onSelect="fun1()">
</FORM>
</BODY>
</HTML>
3.4、常用的函数
 对于一些站点,尤其是邮箱,在用户打开页面的时候会自动把输入用户名的地方设置成焦点,等待用户输入,那么这个函数:focus()。
 如果希望所有的内容被全部选中,则应该使用函数:select()
例如:以下程序在运行的时候就自动把一个文本框设置成焦点
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function init(){
  // 设置成焦点
  document.myform.uname.focus() ;
  // 将内容全部选中
  document.myform.uname.select() ;
 }
 function selall(t){
  // 选中全部内容
  t.select() ;
 }
</script>
</HEAD>
<BODY onLoad="init()">
<FORM name="myform" action="success.htm">
 <INPUT TYPE="text" NAME="uname" id="name" value="用户名" onFocus="selall(this)">
 <INPUT TYPE="password" NAME="upass" id="pass" value="密码" onFocus="selall(this)">
 <INPUT TYPE="submit" value="登陆">
</FORM>
</BODY>
</HTML>
3.5、window对象
 窗口对象,表示与窗口有关的一切操作。
 经常在站点发现有弹出窗口的情况。就是使用了window对象。
window中常用函数:
 • open:表示打开一个页面
 • close:表示关闭一个页面
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(url){
  window.open(url) ;
 }
 function fun2(){
  window.close() ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 <INPUT TYPE="button" value="打开窗口" onClick="fun1('JSDemo01.htm')">
 <INPUT TYPE="button" value="关闭窗口" onClick="fun2()">
</FORM>
</BODY>
</HTML>
 • location:表示页面重新定位到Xxx页面上去。
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  window.location = document.myform.upage.value ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 <SELECT name="upage" onChange="fun1()">
  <option value="JSDemo01.htm">JSDemo01.htm</option>
  <option value="JSDemo03.htm">JSDemo03.htm</option>
  <option value="JSDemo05.htm">JSDemo05.htm</option>
 </SELECT>
</FORM>
</BODY>
</HTML>
 • confirm:确认框
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  if(window.confirm("确定要关闭此窗口吗?")){
   window.close() ;
  }
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 <input type="button" value="关闭窗口?" onClick="fun1()">
</FORM>
</BODY>
</HTML>
 • prompt:窗口输入框
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun1(){
  var v = window.prompt("请输入内容","输入的内容") ;
  document.myform.bt1.value = v ;
 }
</script>
</HEAD>
<BODY onLoad="fun1()">
<FORM name="myform">
 <input type="button" value="" onClick="fun1()" name="bt1" onClick="fun1()">
</FORM>
</BODY>
</HTML>
3.6、form对象
 就是form表单,但是在表单上有一个很重要的函数:submit()。例如,之前的代码:
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function fun(){
  // 提交表单
  document.myform.submit() ;
 }
</script>
</HEAD>
<BODY>
<FORM name="myform" action="success.htm">
 输入姓名:<INPUT TYPE="text" NAME="uname" onBlur="fun()">
</FORM>
</BODY>
</HTML>
3.7、实例
 一般在网上都会存在全选框的代码。
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function selectall(){
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 <INPUT TYPE="checkbox" NAME="email" value="email1">邮件一<br>
 <INPUT TYPE="checkbox" NAME="email" value="email2">邮件二<br>
 <INPUT TYPE="checkbox" NAME="email" value="email3">邮件三<br>
 <INPUT TYPE="checkbox" NAME="email" value="email4">邮件四<br>
 <INPUT TYPE="checkbox" NAME="email" value="email5">邮件五<br>
 <INPUT TYPE="checkbox" NAME="email" value="email6">邮件六<br>
 <INPUT TYPE="checkbox" NAME="email" value="email7">邮件七<br>
 <INPUT TYPE="checkbox" NAME="email" value="email8">邮件八<br><br>
 <INPUT TYPE="checkbox" NAME="all"> 全选
</FORM>
</BODY>
</HTML>
实现一:
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function selectall(){
  if(document.myform.all.checked){
   for(var x=0;x<document.myform.email.length;x++){
    document.myform.email[x].checked = true ;
   }
  }else{
   for(var x=0;x<document.myform.email.length;x++){
    document.myform.email[x].checked = false ;
   }
  }
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 <INPUT TYPE="checkbox" NAME="email" value="email1">邮件一<br>
 <INPUT TYPE="checkbox" NAME="email" value="email2">邮件二<br>
 <INPUT TYPE="checkbox" NAME="email" value="email3">邮件三<br>
 <INPUT TYPE="checkbox" NAME="email" value="email4">邮件四<br>
 <INPUT TYPE="checkbox" NAME="email" value="email5">邮件五<br>
 <INPUT TYPE="checkbox" NAME="email" value="email6">邮件六<br>
 <INPUT TYPE="checkbox" NAME="email" value="email7">邮件七<br>
 <INPUT TYPE="checkbox" NAME="email" value="email8">邮件八<br><br>
 <INPUT TYPE="checkbox" NAME="all" onclick="selectall()"> 全选
</FORM>
</BODY>
</HTML>
 程序分别判断全选控件的操作。
 实际上最好的做法是,所有的待选择的内容,都与全选的状态是一致的。
实现二:
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function selectall(){
  for(var x=0;x<document.myform.email.length;x++){
   document.myform.email[x].checked = document.myform.all.checked ;
  }
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 <INPUT TYPE="checkbox" NAME="email" value="email1">邮件一<br>
 <INPUT TYPE="checkbox" NAME="email" value="email2">邮件二<br>
 <INPUT TYPE="checkbox" NAME="email" value="email3">邮件三<br>
 <INPUT TYPE="checkbox" NAME="email" value="email4">邮件四<br>
 <INPUT TYPE="checkbox" NAME="email" value="email5">邮件五<br>
 <INPUT TYPE="checkbox" NAME="email" value="email6">邮件六<br>
 <INPUT TYPE="checkbox" NAME="email" value="email7">邮件七<br>
 <INPUT TYPE="checkbox" NAME="email" value="email8">邮件八<br><br>
 <INPUT TYPE="checkbox" NAME="all" onclick="selectall()"> 全选
</FORM>
</BODY>
</HTML>
 如果以上的全选框的内容只有一个了,那该如何?
<HTML>
<HEAD>
 <TITLE> New Document </TITLE>
<script language="javaScript">
 function selectall(){
  var i = 0 ;
  for(var x=0;x<document.myform.email.length;x++){
   i++ ;
   document.myform.email[x].checked = document.myform.all.checked ;
  }
  if(i==0){
   document.myform.email.checked = document.myform.all.checked ;
  }
 }
</script>
</HEAD>
<BODY>
<FORM name="myform">
 <INPUT TYPE="checkbox" NAME="email" value="email8">邮件一<br><br>
 <INPUT TYPE="checkbox" NAME="all" onclick="selectall()"> 全选
</FORM>
</BODY>
</HTML>
4、总结
 1、 掌握基本语法及函数,大部分情况下,函数都是由事件触发的
 2、 重点:可以使用JavaScript进行表单验证
5、预习任务
 1、 WEB发展
 2、 Tomcat配置
java视频教程
JAVA核心_58观察者模
 JAVA核心_58观察者模
JAVA核心_57Arrays和比较器
 JAVA核心_57Array..
JAVA核心_56对象克隆
 JAVA核心_56对象克隆
JAVA学习圣经-入门必看
 JAVA学习圣经-入门必看
JAVA游戏开发之MLDN超级马里奥7_01
 JAVA游戏开发之MLDN超..
相关文章 推荐文章
JavaScript(一)[11.6]
用JSP+JavaScript打..[11.6]
用Javascript仿163邮..[10.18]
用javascript仿Wind..[10.17]
玩透javascript弹出窗口..[10.17]
如何用Java实现FTP服务器
在Java EE Server中实现W..
Java获取URL对应的资源
Java获取网络主机信息
JAVA反射机制的简单应用
热门文章
Java实现利用搜索引擎收集网址的程序..
“网络蚂蚁”的Java实现
一个完整的Socket例子
分页算法(一)
读取网络文件
建立推拉门式菜单
JavaScript(一)
用JSP+JavaScript打造二级..
在Java Web应用中如何实现任务有..
用Javascript仿163邮箱网盘..
今日更新
如何用Java实现FTP服务器
在Java EE Server中实现W..
Java获取URL对应的资源
Java获取网络主机信息
JAVA反射机制的简单应用
Java实现抽取网页信息
Smartupload组件
分页算法(二)
分页算法(一)
JavaScript(二)
JAVA招聘网
 评一评
正在读取…
  姓名:
  评论:
    
【注】 发表评论必需遵守以下条例: !!!
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
关于我们 | 商务合作 | 招聘信息 | 客服中心 | 服务条款 | 免责声明 | 网站导航 QQ留言
Copyright 2009 魔乐培训MLDN.CN all rights reserved 版权所有 京ICP备07008611号