浏览 7141 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-08
<!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事件,但这应该不是代码中的错误。郁闷,谢谢各位指点迷津! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间: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> |
|
返回顶楼 | |