javascript实现自动切换焦点功能学习

  当用户在表单中填写完当前字段后,能否自动将焦点跳转到下一个字段以方便用户输入?

  为了增强易用性,加快数据输入的速度,可以在前一个文本框中的字符达到一定的设置的字符长度后(比如电话号码,身份证号等),用户输入完后,自动将焦点切换到下一个文本框中。可以使用JS来实现这一功能。

  思路:首先,比较用户输入的值和文本框中的maxlength特性,确定是否达到了指定的长度(或者允许输入的最大长度),如果这两个值相等,就去查找表单字段的集合,找到下一个文本框,将焦点切换到该文本框中。

代码:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>JS自动切换焦点</title>
 6 <script type="text/javascript">
 7 window.onload = function(){
 8     var EventUtil = {
 9         addhandler:function(element,type,handler){
10             if(element.addEventListenter){
11                 element.addEventListenter(type,handler,false);
12             }else if(element.attachEvent){
13                 element.attachEvent("on"+type,handler);
14             }else{
15                 element["on"+type] = handler;
16             }
17         },
18         getEvent: function(event){
19             return event ? event: window.event;
20         },
21         getTarget: function(){
22             return event.target || event.srcElement;
23         },
24         preventDefault: function(){
25             if(event.preventDefault){
26                 event.preventDefault();
27             }else{
28                 event.returnValue = false;
29             }
30         },
31         stopPropagation: function(){
32             if(event.stopPropagation){
33                 event.stopPropagation();
34             }else{
35                 event.cancelBuddle = true;
36             }
37         },
38         removehandler: function(element,type,handler){
39             if(element.removeEventListenter){
40                 element.addEventListenter(type,handler,false);
41             }else if(element.detachEvent){
42                 element.detachEvent("on"+type,handler);
43             }else{
44                 element["on" +type] = null;
45             }
46         },
47         getCharCode:function(event){
48             if(typeof event.charCode == "number"){
49                 return event.charCode;
50             }else{
51                 return event.keyCode;
52             }
53         },
54     }
55
56     var textarea = document.forms[0].elements["text"];
57     var button = document.getElementById("button");
58
59     (function(){
60         function tabForward(event){
61             event = EventUtil.getEvent(event);
62             var target = EventUtil.getTarget(event);
63
64             if(target.value.length == target.maxLength) {
65                 var form = target.parentElement;
66
67                 for(var i=0, len=form.elements.length; i<len-1; i++)
68                 {
69                     if(form.elements[i] == target){
70                         form.elements[i+1].focus();
71                         return;
72                     }
73                 }
74             }
75         }
76         var textName = document.getElementById("textName");
77         var textTel = document.getElementById("textTel");
78         var textID = document.getElementById("textID");
79
80         EventUtil.addhandler(textName,"keyup",tabForward);
81         EventUtil.addhandler(textTel,"keyup",tabForward);
82         EventUtil.addhandler(textID,"keyup",tabForward);
83     })();
84 }
85 </script>
86 </head>
87
88 <body>
89     <form>
90         <input type="text" name="Name" id="textName" maxlength="5" placeholder="您的姓名"/>
91         <input type="text" name="Tel" id="textTel" maxlength="11" placeholder="您的电话号码"/>
92         <input type="text" name="ID" id="textID" maxlength="5" placeholder="您的ID"/>
93
94     </form>
95 </body>
96 </html>

  

时间: 2024-08-11 22:20:47

javascript实现自动切换焦点功能学习的相关文章

[JS]图片自动切换效果(学习笔记)

上次在下载的网页中看到 javascript实现图片自动切换效果: <style text="text/css"> /*图片滚动栏*/.container, .container * {    margin: 0;    padding: 0;}.container {    width: 1005px;    height: 395px;    float: right;    overflow: hidden;    position: relative;    rig

html+css+jQuery+JavaScript实现tab自动切换功能

tab1.html内容 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>tab选项卡</title> <style> * { margin: 0; padding: 0; } ul,li { list-style: none; } body { background-color: #323232; font-size: 12px;

javascript焦点图(暂时不能自动切换)

<!DOCTYPE > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="css.css"/> <title></titl

JavaScript实现回车键切换输入框焦点

用JavaScript实现回车键切换输入框焦点的功能,不是回车换行哦,在Textarea中,回车换行是默认功能,不过若要在textarea中使用 回车切换输入框焦点功能的话,回车换行就要失效了,不过input对象可以用,一般在表单中,input元素是比较多的,下面来个例子: <script type="text/javascript"> function handleEnter (field, event) { var keyCode = event.keyCode ? e

vim基础学习之自动补全功能

本章我们学习自动补全功能1.自动补全优先从当前的编辑区获得补全列表例如:我们写下如下内容 aaaaa aabbb aaab 当我们再次输入aa,然后我们按下Tab的时候,会弹出一个包含 aaaaa aabbb aaab的列表触发补全模式的条件1.插入模式下 ctrl+p ctrl+n 或者Tab 同时,ctrl+p ctrl+n还能够上下移动选中补全列表项还有其他的补全方法,如下这些方法都是以ctrl + x来启动的,然后跟着你想要的补全样式 1.<c-n>-普通关键字 2.<c-x&g

自动切换输入焦点的一个小&quot;插件&quot;

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <style> form{ margin-bottom:10px; } form#inputs>input,form#inputs2>input,form#inputs3>input{ width:40px; height:40px; border-right-co

TimesTen 数据库复制学习:16. 一个缓存组,复制,客户端自动切换的串烧实验

简介 这时一个集只读,AWT缓存组,Active Standby 复制,client auto failover为一体的集成实验. 整个过程来至于Doc ID 1359840.1, 本文基于此文档按照自己的环境重做了一遍,并更正了其中的小错误,增加了自己的理解. 本文省略了在Oracle端设置缓存组的过程,可以参见前面的文章. 搭建的环境为虚拟机 timesten-hol 上安装了两个TimesTen实例, 实例名分别为tt1122和ttnew, 分别驻留在端口53392(缺省)和55555 t

从零开始学习制作H5应用——V3.0版,loading,背景音乐及自动切换

我们的第一个H5应用经过V1.0与V2.0的制作,已经越来越惊艳了,这一次,我们继续来给她梳妆打扮,让她更漂亮. 任务 1.加入页面加载完成前的loading动画,提升用户体验: 2.加入背景音乐,自动播放,并添加控制图标,可以控制播放与暂停 3.让页面实现自动切换. 实现 第一步:Loading动画 index.html -- <body> <div class='loader loader--spinningDisc'></div> <div id="

js自动切换轮播图

思路:左右切换--左右切换(加上小圆点)--小圆点点击--动画效果--自动切换 html: <div id="container"> <div id="list" style="left: -600px;"> <img src="images/55.jpg" alt="1"> <img src="images/11.jpg" alt="