奥展项目笔记10--js实现上下键控制光标移动

html代码:

复制代码
<div class="col-md-2 title">企业名称:</div>
                            <div class="col-md-4 data">
                                <input type="text" class="form-control" placeholder="请输入企业名称" value=""
                                       v-model="form.company" onkeydown="moveCursor(this,event)">
                            </div>

                            <div class="col-md-2 title">到货时间:</div>
                            <div class="col-md-4 data">
                                <input type="text" class="form-control" placeholder="请输入到货时间" value=""
                                       v-model="form.arrivetime" onkeydown=" moveCursor(this,event)">
                            </div>

                            <div class="col-md-2 title">炉号 Heat No:</div>
                            <div class="col-md-4 data">
                                <input type="text" class="form-control" placeholder="请输入炉号" value=""
                                       v-model="form.heatno" onkeydown="moveCursor(this,event)">
                            </div>

                            <div class="col-md-2 title">交货状态:</div>
                            <div class="col-md-4 data">
                                <input type="text" class="form-control" placeholder="请输入交货状态" value=""
                                       v-model="form.deliver" onkeydown="moveCursor(this,event)">
                            </div>
复制代码

js代码:

复制代码
//jQuery实现在一个输入框按下键后光标跳到下一个输入框
    function focusNextInput(thisInput)
    {
        let inputs = document.getElementById("inspect-part1").getElementsByTagName("input");
        for(var i = 0;i<inputs.length;i++){
            // 如果是最后一个,则焦点回到第一个(如果想实现按顺序可以登陆,可以写入登陆方法)
            if(i==(inputs.length-1)){
                inputs[0].focus(); break;
            }else if(thisInput == inputs[i]){
                inputs[i+2].focus(); break;
            }
        }

    }

    //jQuery实现在一个输入框按上键后光标跳到上一个输入框
    function focusLastInput(thisInput)
    {
        let inputs = document.getElementById("inspect-part1").getElementsByTagName("input");
        for(var i = 0;i<inputs.length;i++){
            // 如果是最后一个,则焦点回到第一个(如果想实现按顺序可以登陆,可以写入登陆方法)
            if(thisInput==inputs[0]){
                inputs[inputs.length-1].focus(); break;
            }else if(thisInput == inputs[i]){
                inputs[i-2].focus(); break;
            }
        }

    }

    function moveCursor(thisInput,event){
        var e = event || window.event || arguments.callee.caller.arguments[0];

        if(e && e.keyCode==38){//
            console.log("hello");
            focusLastInput(thisInput);
        }
        if(e && e.keyCode==40){//
            focusNextInput(thisInput);
        }


    }
复制代码

效果图:

posted @   雨后观山色  阅读(624)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示