在对此问题Multiple submit buttons in an HTML form的接受回答中,提出了评论:
Please don’t do this without also changing the tab order, so that
hitting the tab button will cycle through the buttons as they appear
on screen.
我的问题是:有没有办法在这两个按钮上设置tabindex来完成这个排序,而不必为页面上的每个其他可选元素分配一个特定的tabindex?
我对tabindex值的理解是指定的正值继续使用没有指定值的元素,因此我无法找到一种方法来执行此操作,并将其他所有内容分配给值.
如果确实如此,为每个项目分配特定的tabindex是唯一的方法,是否有一些(希望简短且有希望的jQuery)魔术为页面上的每个适当的元素分配一个tabindex,比方说1?
编辑
因为看起来解决方案将涉及将特定的tabindex应用于每个其他可标记对象 – 似乎解决方案的一个重要部分将是:jQuery中有一种方便的方法来选择每个可列表对象吗?所有的s和???
解决方法:
使用Adding tabindex dynamically和修复按钮凹凸:
$(":input:not(:hidden)")
.each(function (i) {
$(this).attr('tabindex', i + 1);
});
var r = $('input.r').attr('tabindex');
$('input.r').attr('tabindex', $('input.l').attr('tabindex'));
$('input.l').attr('tabindex', r);
HTML:
<input type="submit" value="Next" class="r" />
<input type="submit" value="Previous" class="l" />
更新 – 修复查询以不仅选择输入(请参阅下面John的评论中的链接):
$("a[href],area[href],input:not([disabled]),select:not([disabled]),\
textarea:not([disabled]),button:not([disabled]),iframe,[tabindex],\
[contentEditable=true]")