<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 回答

蛊毒传说
TA贡献1895条经验 获得超3个赞
第一,以后贴代码麻烦贴完整大括号和括号,不然人家复制过去很容易出错;
第二,cur_focus.length==0
是什么?想检测目前焦点框中有没有内容吧,但是cur_focus获取的是dom对象,用length去获取里面的内容长度?
第三,逻辑错误,检测一个焦点框是空的,应该将焦点始终保持在这个框吧,跳回到#mobile框是什么意思?
第四,如果有效(需要跳转焦点到下一个),为什么要那么绕,而且也是错误的计算,直接选择器选中现在的焦点然后找它的下一个兄弟节点就好了啊
添加回答
举报
0/150
提交
取消