首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery tabIndex修复

jquery tabIndex修复
EN

Stack Overflow用户
提问于 2010-03-19 10:30:37
回答 1查看 3.1K关注 0票数 0

在我的页面(ASP.NET 3.5)上,只要下一个输入控件没有启用或隐藏,所有输入控件都设置了Tab键顺序,它会转到地址栏,然后转到下一个可用控件。要修复此行为,即使其位于下一个可用控件而不是地址栏,我正在尝试使用jQuery:

代码语言:javascript
复制
$(':text,textarea,select').blur(function()
{
    $(this).next(':text, textarea, select').filter(':enabled:visible').focus();        

});  

但在某些情况下,它仍然会去地址栏。我需要在这里更正什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-19 20:17:12

首先让我说,我不会这么做,而是使用控件上的tabindex property来获得您想要的Tab键顺序,地址栏只在最末尾,因为这是用户所期望的。

也就是说,有一种jQuery方法可以强制实现你想要的东西,你可以这样做:

代码语言:javascript
复制
$('form :input:enabled:visible').blur(function() {
  var con = $(this).closest('form').find(':input:enabled:visible');
  var i = con.index(this);
  setTimeout(function() { con.eq(i == con.length - 1 ? 0 : i + 1).focus(); }, 0);
});

这会改变一些事情:

  • .next()只查找
    • 的下一个元素,它查找<form>并获得下一个匹配(将所有输入的form更改为body )。

对于this,当到达末尾时,制表符需要换行到第一个元素,并使用

  • .index()i == con.length - 1 ? 0 : i + 1

最后,元素的focus事件将在使用像above这样的setTimeout(func, 0)后立即触发 this above(默认情况下)

  • 之后触发

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2474633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档