自动切换输入焦点的一个小"插件"

<!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-color: #FD7012;
            border-style: solid;
            border-top-width: 2px;
            border-bottom-width: 2px;
            border-left:none;
            font-size: 30px;
            text-align: center;
           // outline: none;
        }
        form#inputs>input:first-child,form#inputs2>input:first-child,form#inputs3>input:first-child{
            border-left: 2px solid #000;
        }
        form#inputs>input:last-child,form#inputs2>input:last-child,form#inputs3>input:last-child{
            border-right: 2px solid #000;
         }
    </style>
    <title></title>
</head>
<body>
<hgroup>
    <h1>自动切换输入焦点的一个小插件</h1><h2>haley编写</h2>
</hgroup>
<form id="inputs"></form>
<form id="inputs2"></form>
<form id="inputs3"></form>
<div>
    <h2>使用说明:</h2>
    <ol>
        <li>数量可以自由定制</li>
        <li>输入框的大小、边框颜色、边框线型可通过修改css样式改变</li>
        <li>页面中是输入组可以有多个</li>
        <li>haley编写</li>
    </ol>
</div>
<script>
    function inputsAutoFocus(config) {//页面id,输入框的数量
        var inps=document.getElementById(config.id);
        function tabForward(e) {
            e = e || window.event;
            var target = e.target || e.srcElement;
            if (target.value.length === target.maxLength) {
                var form = target.form;
                for (var i = 0; i <config.num; i++) {

                    if (form.elements[i] === target) {
                        if (form.elements[i++]) {
                            if(i<config.num)form.elements[i++].focus();
                        }
                        break;
                    }
                }
            }
        }
        function addEvents() {
            for (var i = 0; i < config.num; i++) {
                inps.children[i].addEventListener("keyup", tabForward, false);
            }
        }
        function appInp(){
            var inp = document.createElement("input");
            inp.setAttribute("type", "text");
            inp.setAttribute("maxlength", "1");
            inp.style.top = "20px";//js设置样式
            inps.appendChild(inp);
        }
        for(var i=0;i<config.num;i++){
            appInp();
        }
        addEvents();
    };
    inputsAutoFocus({id:‘inputs‘,num:11});
    inputsAutoFocus({id:‘inputs2‘,num:4});
    inputsAutoFocus({id:‘inputs3‘,num:6});

</script>

</body>
</html>
时间: 2024-10-14 15:42:49

自动切换输入焦点的一个小"插件"的相关文章

Enter回车切换输入焦点方法兼容各大浏览器

做项目时,客户要求能够用enter回车直接切换输入(焦点),当最后一个时候,直接提交信息. 第一想法就是,网上去copy一段代码直接用.但了百度.谷歌找了个遍,找到的代码80%以上都是一样的.有的代码太老,都不能用.有的只有部分浏览器能用.折腾了半小时也没个合适的办法.最后一想,干脆自己动手. 一.思路 每次点击回车的时候,获取当前的焦点位置,然后设置它的下一个元素获取焦点; 二.代码 <script type="text/javascript"> $('input:tex

Eclipse中的一个小插件easyExplorer--用于打开文件所在目录

最近格式化了硬盘,里面的诸多有价值的插件都没了,开发时需要打开java文件所在的目录,每次都很麻烦,实在无法忍受,就又重新下载了一个小插件,用以很方便的打开文件所在目录: easyExplorer 仅有7kb 一:官方下载地址: http://sourceforge.net/projects/easystruts/ 由于天朝网络问题,等个大概十来秒的时间出现下图: 二:配置方式: 直接将下载后的文件:org.sf.easyexplore_1.0.4.jar复制到eclipse下的plugins下

使用Oracle 11g分区自动扩展的功能的一个小问题

Oracle 11g下使用分区自动扩展的功能,非常方便,不过同时也带来一个问题,就是导出.导入之后,建表语句改了,下面来做个实验: SQL> select * from v$version; BANNER ------------------------------------------------------------------------------ Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Pr

Java中用Scanner扫描控制台输入时的一个小问题

package com.hxl; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数和一个字符串:"); int aa = sc.nextInt(); String ss = sc.nextLine(); System.out.print

VSCode中自动编译Typescript遇到的一个小问题

VSCode中自动编译Typescript,很多人都会,网上也有许多教程,这里我想记录下我遇到一个问题...... 在我一切都准备好后,点击终端--运行任务--选择tsc:监视 - tsconfig.json后,终端报出了如下错误: error TS5058: The specified path does not exist的错误,我很诧异,也尝试了各种解决方法,但均无效果,最后从网上一篇相关的答疑得到了思路,抱着试试的心态,去尝试,问题得到了解决,可以正常的自动编译了 解决:VSCode的默

关于借助prototype进行分页的一个小插件

(function (win, undefined) { var pagefen = win.pagefen = function (inforAllcount) { this.nowpage = 1; //当前页 this.pagecount = 10; //一次性加载十条 //总共有多少页 this.pageAllcount = (inforAllcount % this.pagecount == 0 ? (inforAllcount / this.pagecount) : (parseIn

Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法

<script type="text/javascript"> $('input:text:first').focus(); document.onkeydown = function enterHandler(event) { var inputs = $("input"); //可自行添加其它过滤条件 var browser = navigator.appName ; //浏览器名称 var userAgent = navigator.userAge

使用clean-webpack-plugin小插件报错CleanWebpackPlugin is not a constructor

clean-webpack-plugin是webpack的一个小插件: 由于每次打包的时候有可能文件名称不一样,打包后的文件就叠加到dist目录下了. 所以cleanWebPackPlugin作用就是在每次打包之前,先把dist目录删掉,创建最新的目录,避免一些不必要的文件还留在dist目录下 安装:npm install clean-webpack-plugin -D 正确的使用方法如下: //引入clean-webpack-plugin的包 const { CleanWebpackPlugi

浏览器首页设置(当被小插件占用时)

之前打开浏览器的时候都显示自己设置的首页,突然有一天显示的不是我设置的百度首页了,原来是金山的一个小插件,到设置里面设置了好几次都不行. 问题在这里: 右键浏览器(chrome为例)---> 属性 ---> 快捷方式  目标 ---> 删除掉其中不认识的网址 (如果其中出现了莫名奇妙的网址) 如果修改不了  再看下面:右键浏览器(chrome为例) ---> 常规 ----> 只读的复选框去掉