javascript - 如何使表单元素在回车键下依次获得焦点,求大神指点
黄舟
黄舟 2017-04-11 09:02:18
[JavaScript讨论组]
<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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
阿神

第一,以后贴代码麻烦贴完整大括号和括号,不然人家复制过去很容易出错;

第二,cur_focus.length==0是什么?想检测目前焦点框中有没有内容吧,但是cur_focus获取的是dom对象,用length去获取里面的内容长度?

第三,逻辑错误,检测一个焦点框是空的,应该将焦点始终保持在这个框吧,跳回到#mobile框是什么意思?

第四,如果有效(需要跳转焦点到下一个),为什么要那么绕,而且也是错误的计算,直接选择器选中现在的焦点然后找它的下一个兄弟节点就好了啊

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号