BugMyGod 2017-04-17 07:45 采纳率: 0%
浏览 1861

焦点自动跳到下一个输入框,跳到第一个select时,就跳不到第二个

亲们 请教个问题 ---想要实现输入内容或回车后,焦点自动跳到下一个输入框,但是在跳到第一个select标签时,就跳不到第二个select了,请问是什么原因,该如何修改?

 <div class="wrapper">
    <div class="container">
        <form action="#" id="form" class="form">
            <div class="form_inner">
                <!--<label for="demo_1">用户名:</label>-->
                <input type="text"  class="demo_input" id="demo_1" name="demo_1" placeholder="请输入..."/>
                <!--<label for="demo_2">1111:</label>-->
                <input type="text"  class="demo_input" id="demo_2" name="demo_2" placeholder="请输入..."/>
                <input type="text"  class="demo_input" name="demo_3" placeholder="请输入..."/>

                <textarea class="demo_textarea" name="demo_6" placeholder="请输入..."></textarea>
                <textarea class="demo_textarea" name="demo_7" placeholder="请输入..."></textarea>

                <select class="demo_select" name="demo_4" >
                    <option>选项一</option>
                    <option>选项二</option>
                    <option>选项三</option>
                </select>
                <select class="demo_select" name="demo_5" >
                <option>选项一</option>
                <option>选项二</option>
                <option>选项三</option>
                </select>

            </div>

        </form>
    </div>
</div>


$(document).ready(function(){
    //keycode 37 = Left, keycode 38 = Up, keycode 39 = Right, keycode 40 = Down
    //默认焦点在第一个;当input输入内容大于10或者回车,焦点跳到下一个;按左键返回上一个;
    $('input').eq(0).focus();
    $("[name^='demo_']").each(function(){
        $(this).keyup(function(e){
            //debugger;
            e = window.event || e;
            var k = e.keyCode || e.which;
            if(k == 13 || $(this).val().length >= 10 ){   //回车 or >10
                $(this).next().focus();
            }else if(k == 37){   //left
                $(this).prev().focus();
                $(this).prev().focus(function(){
                   var obj = e.srcElement ? e.srcElement : e.target;
                });
            }
        })
    });
});

  • 写回答

1条回答

  • Go 旅城通票 2017-04-17 12:42
    关注

    改keydown。。而且你既然用jquery了,不需要each加事件,而且事件兼容不需要判断了,jquery都帮你做了

     <div class="wrapper">
        <div class="container">
            <form action="#" id="form" class="form">
                <div class="form_inner">
                    <!--<label for="demo_1">用户名:</label>-->
                    <input type="text" class="demo_input" id="demo_1" name="demo_1" placeholder="请输入..." />
                    <!--<label for="demo_2">1111:</label>-->
                    <input type="text" class="demo_input" id="demo_2" name="demo_2" placeholder="请输入..." />
                    <input type="text" class="demo_input" name="demo_3" placeholder="请输入..." />
    
                    <textarea class="demo_textarea" name="demo_6" placeholder="请输入..."></textarea>
                    <textarea class="demo_textarea" name="demo_7" placeholder="请输入..."></textarea>
    
                    <select class="demo_select" name="demo_4">
                        <option>选项一</option>
                        <option>选项二</option>
                        <option>选项三</option>
                    </select>
                    <select class="demo_select" name="demo_5">
                        <option>选项一</option>
                        <option>选项二</option>
                        <option>选项三</option>
                    </select>
    
                </div>
    
            </form>
        </div>
    </div>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
    <style></style>
    <script>
        $(document).ready(function () {
            $('input').eq(0).focus();
            $("[name^='demo_']").keydown(function (e) {
                var k = e.keyCode
                if (k == 13 || $(this).val().length >= 10) {
                    $(this).next().focus();
                    return false;
                } else if (k == 37) { 
                    $(this).prev().focus();
                    $(this).prev().focus(function () {
                        var obj = e.srcElement ? e.srcElement : e.target;
                    });
                }
            })
        });
    </script>
    
    评论

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择