搜索
javascript - 如何使表单元素在回车键下依次获得焦点,求大神指条明路
PHPz
PHPz 2017-04-11 09:01:51
[JavaScript讨论组]

<body>

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

</body>

//设置键盘按键表单字段获得焦点
    $("#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

PHPz
PHPz

学习是最好的投资!

全部回复(2)
ringa_lee
$(function(){
    var $all= $('input[type="text"]');
    var $curr = $all.first().focus();
    var i = 0;
    $(window).on('keyup',function(e){
        if(e.keyCode === 13){
            $all.eq(++i).focus();
            if(i>=$all.length)i=0;
        }
    });
});
PHP中文网

var cur_focus_index=$(":text").filter(":focus").index();//找到当前获得焦点的表单元素在所有text表单元素的index

正确写法是:
var cur_focus_index=$(":focus").index(":text");
var cur_focus_index=$(":text").index($(":focus"));
这两句都能正确的获取当前获得焦点的表单元素在所有text表单元素的索引

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

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