`
freemanxm84
  • 浏览: 21334 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

关于javascript的onkeyup事件的一点疑问

阅读更多
今天在做一个类似IP输入框的时候遇到一个不大不小的麻烦!在我使用onkeyup事件的时候程序运行了我所预料之外的结果,把代码贴在这里,看看是问题出在那里。有解决方案的把代码贴上大家共享,谢谢了!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script>
	function keyJump1(obj){
		if(obj.length==4) {
			document.all.personNumber2.focus();
		}
	}
	function keyJump2(obj){
		if(obj.length==6) document.all.personNumber3.focus();
	}
	function keyJump3(obj){
		if(obj.length==8) document.all.personNumber4.focus();
	}
</script>
<body>
<table  border="0">
	<tr>
		<td><input name="personNumber1" type="text" class="textbox" style=" width:030; height:20 " onfocus="this.select()" onkeyup='keyJump1(this.value)' maxlength="4"></td>
		<td width="005">-</td>
		<td ><input name="personNumber2" type="text" class="textbox" style=" width:040; height:20" onfocus="this.select()" onkeyup='keyJump2(this.value)' maxlength="6"></td>
		<td width="005">-</td>
		<td ><input name="personNumber3" type="text" class="textbox" style=" width:055; height:20" onfocus="this.select()" onkeyup='keyJump3(this.value)' maxlength="8"></td>
		<td width="005">-</td>
		<td ><input name="personNumber4" type="text" class="textbox" style=" width:010; height:20" onfocus="this.select()" onkeyup='' maxlength="1"></td>
	</tr>
</table>	
</body>
</html>

这张页面按我最初的设计是在判断前一个输入框已输入符合长度的值时自动跳到下一个输入框,并将输入框内的内容选中。在输入框都为空的情况下能正常运行,但当输入框都填满后,回到第一个输入框或第二个输入框,再对值进行修改时就出现问题了,如:在第一输入框输入四个字符后,焦点并不是跳到第二个输入框,却跳到了第三个输入框,似乎是在第二个输入框自动激发了一次onkeyup事件,但这应该不是代码中的错误。郁闷,谢谢各位指点迷津!
分享到:
评论
1 楼 freemanxm84 2007-02-08  
经过我仔细测试发现,其实一次键盘弹起动作激发了两次onkeyup事件,我在没有找到很好的解决办法之前是采用硬编码的方法消化掉一次onkeyup事件,虽然是很不好的方法,但是我真想不出别的什么方法来解决了。现将修改后的代码贴出来,希望和我一样追求完美代码的朋友和我一起来把这段小小的代码变得更优雅一些:)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script>
	function keyJump1(obj){
		if(obj.length==4) {
			document.all.temp1.focus();
			
		}
	}
	function keyJump2(obj){
	
		if(obj.length==6) 
		{
			document.all.temp2.focus();
		}
	}
	function keyJump3(obj){
		if(obj.length==8) document.all.temp3.focus();
	}
	function keyJumpTemp(obj){
		obj.focus();
	}
</script>
<body>
<table  border="0">
	<tr>
		<td><input name="personNumber1" type="text" class="textbox" style=" width:030; height:20 " onfocus="this.select()" onkeyup='keyJump1(this.value)' maxlength="4"></td>
		<td id="temp1"  width="005" onkeyup="keyJumpTemp(document.all.personNumber2)">-</td>
		<td ><input name="personNumber2" type="text" class="textbox" style=" width:040; height:20" onfocus="this.select()" onkeyup='keyJump2(this.value)' maxlength="6"></td>
		<td id="temp2" width="005" onkeyup="keyJumpTemp(document.all.personNumber3)">-</td>
		<td ><input name="personNumber3" type="text" class="textbox" style=" width:055; height:20" onfocus="this.select()" onkeyup='keyJump3(this.value)' maxlength="8"></td>
		<td id="temp3" width="005" onkeyup="keyJumpTemp(document.all.personNumber4)">-</td>
		<td ><input name="personNumber4" type="text" class="textbox" style=" width:010; height:20" onfocus="this.select()" onkeyup='' maxlength="1"></td>
	</tr>
</table>	
</body>
</html>

相关推荐

    onkeypress和onkeydown以及onkeyup的区别

    onkeypress、onkeydown和onkeyup是三种常用的JavaScript事件,都是与键盘输入相关的事件,但它们之间存在着一些细微的区别。 首先,让我们来看一下这三个事件的触发顺序:onkeydown -&gt; onkeypress -&gt; onkeyup。这三...

    javascript表单事件汇总

    在深入探讨《javascript表单事件汇总》这一主题之前,我们首先需要理解JavaScript作为一种广泛应用于网页开发的脚本语言,如何通过处理各种事件来增强用户体验、实现动态交互效果。本文将详细解析一系列重要的...

    JavaScript程序设计——事件处理实验报告.docx

    - **Event对象**:事件处理函数中通常会传递一个Event对象,包含了关于事件的信息,如事件类型、位置等。 - **键盘事件**:如`onkeydown`(键按下)、`onkeyup`(键释放)和`onkeypress`(字符键按下)。 - **...

    中文输入法不触发onkeyup事件的解决办法

    `onkeyup`事件是一种常见的键盘事件,它在用户释放键盘按键时触发。然而,当用户使用中文输入法时,由于输入过程涉及候选词选择和确认,`onkeyup`事件可能不会像英文输入那样正常触发,导致我们的实时监控功能失效。...

    javaScript常用事件命令

    JavaScript 常用事件命令 JavaScript 是一种广泛应用于 web 开发的编程语言,具有广泛的应用前景。下面将对 JavaScript 常用事件命令进行总结和讲解。 onblur 事件 onblur 事件是在表单元素中,当元素失去焦点时...

    Javascript鼠标事件汇总

    ### JavaScript鼠标事件汇总详解 #### 一、基本概念与作用 在前端开发中,JavaScript(简称JS)作为主要的脚本语言,对于处理用户交互至关重要。鼠标事件是JS中最常见的一种事件类型,它能帮助开发者捕捉用户的...

    javascript的事件大全

    JavaScript事件是JavaScript编程中非常重要的一个概念,它涉及到用户与网页交互的响应机制。事件是用户或浏览器执行特定操作时触发的代码执行点。以下是对JavaScript事件大全的详细解释: 1. 鼠标事件: - onClick...

    JavaScript常用事件

    JavaScript事件是编程中的一种机制,它允许我们对用户在网页上的交互进行响应。这些事件可以是用户的行为,如点击按钮、滚动页面或填写表单,也可以是浏览器内部的状态变化,如页面加载完成或图片加载失败。理解并...

    javascript 触发事件列表

    ### JavaScript 触发事件列表详解 #### 一、单击事件(onclick) 当用户单击鼠标按键时触发的事件。通常,在HTML元素上定义`onclick`属性,该属性指定一个事件处理程序或一段代码,当点击事件发生时,这段代码将会被...

    JavaScript触发事件列表

    除了上述事件外,还有许多其他的事件,例如:ondblclick、onkeypress、onkeydown、onkeyup等。 页面相关事件 页面相关事件包括:onabort、onbeforeunload、onerror、onmove、onresize、onscroll、onstop等。 表单...

    09JavaScript事件总结.docx

    事件对象包含关于触发事件的详细信息,如鼠标和键盘状态。例如,`event.altKey`检查`ALT`键是否被按下,`event.clientX`和`event.clientY`提供鼠标在视口内的坐标。在非标准IE8及以下版本中,事件对象存储在`window....

    javascript事件列表解说

    JavaScript事件是网页交互的核心,它允许开发者响应用户的动作或页面状态的改变。下面是对JavaScript事件列表的详细解说: 1. **鼠标事件**: - `onclick`:在鼠标单击元素时触发。 - `ondblclick`:当鼠标双击...

    实验项目二十二  javascript事件处理.doc

    在 JavaScript 中,我们可以使用 onkeydown 事件来响应键盘输入事件,onkeyup 事件来响应键盘释放事件。 例如,我们可以使用 onkeydown 事件来响应键盘输入事件,如下所示: (event.key=='Enter'){ alert(' 你按下...

    javascript 按键事件(兼容各浏览器)

    在本文中,我们首先介绍了JavaScript中处理键盘按键事件的三种不同类型的事件:keydown、keypress和keyup,以及它们对应的事件句柄onkeydown、onkeypress和onkeyup。这些事件类型在处理按键时是有顺序和差异的:首先...

    javascript事件触发列表与解说.pdf

    本文将详细解析一份JavaScript事件触发列表,涵盖一般事件、页面相关事件、表单相关事件以及滚动字幕事件,深入探讨每个事件的触发条件、应用场景及浏览器兼容性。 #### 一、一般事件 1. **onClick** - **触发...

    JavaScript详细事件列表

    ### JavaScript详细事件列表知识点解析 #### 一、概述 JavaScript是一种广泛使用的脚本语言,用于增强网站的交互性。在Web开发中,事件是与用户交互的重要方式之一。JavaScript提供了丰富的事件类型,允许开发者...

    JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例

    在JavaScript中,可以使用`onkeydown`和`onkeyup`事件监听键盘输入。以下例子展示了如何监听`G`键的`keydown`事件: ```html &lt;!DOCTYPE html&gt; 键盘事件 window.onload = function () { window.onkeypress ...

    JavaScript中的所有on事件

    ### JavaScript中的所有on事件:详尽解析与应用 在JavaScript编程中,事件处理是与用户交互的核心机制之一。通过监听并响应各种事件,开发者能够创建动态、响应式的Web应用程序。以下是对给定文件中提到的所有on...

    javascript中的onkeyup和onkeydown区别介绍

    在前端开发过程中,为了实现一些与用户输入相关的功能,如实时统计文本框中输入的字数或验证输入内容等,经常需要使用到JavaScript中的键盘事件。在这些事件中,onkeydown和onkeyup是两个非常重要的事件,它们分别...

    javascript鼠标事件大全

    ### JavaScript鼠标事件大全 在JavaScript编程中,鼠标事件是非常重要的交互元素之一,它们允许开发者捕捉用户的鼠标动作,并根据这些动作触发相应的脚本处理。本文将详细介绍JavaScript中的各种鼠标事件及其特性,...

Global site tag (gtag.js) - Google Analytics