在javascript onfocus()处理程序中,是否有一种好方法可以将焦点转移到Tab键顺序中的下一个项目,而无需手动输入应该是下一个项目的ID?
我在Django / jQuery中构建了一个HTML日期选择器。这是一个行编辑,后跟一个弹出日历的日历图标。我希望能够从行编辑到下一个输入,跳过日历图标的链接。我的意思是它是一个通用的小部件,所以我不能硬编码下一个的id并调用.focus()。我知道我可以在所有内容上设置tabindex属性,但这比我想要的更加手动。另外,iirc,它不会阻止它获得焦点,它只会将它放在Tab键顺序的末尾。
答案 0 :(得分:27)
为该控件设置tabindex =“ - 1”,浏览器将从Tab键跳过该控件。
答案 1 :(得分:2)
也许:
$("#your-calendar-icon").focus(function() {
$(this).trigger("blur");
);
答案 2 :(得分:2)
答案 3 :(得分:2)
或:
$("#your-calendar-icon").focus(function() {
$(somethingElse).trigger("focus");
});
答案 4 :(得分:0)
在日历图标周围使用div而不是链接。然后将日历事件附加到div。默认情况下,div不会是制表位。
答案 5 :(得分:0)
如果总是在日历之后输入,那么为什么不呢:
$('#your-calendar-icon').focus( function() {
$(this).next('input').focus();
} );
就个人而言,我会说,如果它是一个插件,你应该让下一个元素成为一个具有默认值的配置选项,并指定文档中的默认值。
答案 6 :(得分:0)