猿问

如何使表单元素在回车键下依次获得焦点,求大神指点

<body>
    <input id="mobile"><br/>
    <input><br/>
    <input><br/>
    <input><br/>
    <input><br/>
    <input><br/>
    <input><br/>
    </body>

//设置键盘按键表单字段获得焦点

(function(){
    $("#mobile").focus();//文档加载后第一个字段自动获得焦点
    $(window).keydown(function(e){
        var cur_focus=$(":focus");//获取当前获得焦点的表单元素
        if(e.keyCode==13){//当点击回车键
            if(cur_focus.length==0){//如果没有表单元素获得焦点
                $("#mobile").focus();//使第一个表单元素获得焦点
            }else{//如果有表单元素获得焦点
        var cur_focus_index=$(":text").filter(":focus").index();//找到当前获得焦点的表单元素在所有text表单元素的index
            
                $(":text").eq(++cur_focus_index).focus();//使下一个表单元素获得焦点
            }
        }
        
    })

问题是希望按下回车键表单text会依次获得焦点,但情况并没有想象的那样区实现,求大神指点
详情:http://runjs.cn/code/bb0ekcc9


HUH函数
浏览 552回答 1
1回答

蛊毒传说

第一,以后贴代码麻烦贴完整大括号和括号,不然人家复制过去很容易出错;第二,cur_focus.length==0是什么?想检测目前焦点框中有没有内容吧,但是cur_focus获取的是dom对象,用length去获取里面的内容长度?第三,逻辑错误,检测一个焦点框是空的,应该将焦点始终保持在这个框吧,跳回到#mobile框是什么意思?第四,如果有效(需要跳转焦点到下一个),为什么要那么绕,而且也是错误的计算,直接选择器选中现在的焦点然后找它的下一个兄弟节点就好了啊
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答