禁用的引导按钮可以通过标签访问

时间:2019-06-14 16:24:08

标签: twitter-bootstrap disabled-control

因此,通过执行以下操作,应该禁用该按钮,但实际上可以使用制表符访问该按钮:

Dim rb As RadioButton = grpGrams.Controls.OfType(Of RadioButton).FirstOrDefault(Function(r) r.Checked = True)?.Name
Dim strRBName As String = Nothing
If rb IsNot Nothing Then strRBName = rb.Name

为防止这种情况发生,我必须向要禁用的所有元素添加Dim strRBName As String = grpGrams.Controls.OfType(Of RadioButton).FirstOrDefault(Function(r) r.Checked = True)?.Name 吗?我以为使用禁用的类可以解决此问题,但似乎没有。

还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

是的,这很烦人但也很合乎逻辑。制表和聚焦是不同的浏览器任务。 CSS(除了少数例外)主要与视觉行为有关。添加tabindex="-1"会变得令人毛骨悚然,因为一旦不再禁用该按钮,您很可能还希望通过制表来使该按钮集中。

如果按钮正在获得焦点并且它是disabled,我建议一个将焦点移到上一个或下一个元素的处理程序:

$('button').focus(function(e) {
  if ($(this).hasClass('disabled')) {
    e.currentTarget.nextElementSibling.focus()
    //or e.currentTarget.previousElementSibling.focus()
  }
})