【问题标题】:Disable checkbox highlighting禁用复选框突出显示
【发布时间】:2014-12-21 06:30:48
【问题描述】:
当我单击一个复选框,然后在我开始输入后立即突出显示该复选框。当我在突出显示时按空格键时,它会检查它。
有没有办法禁用空格键检查它或只是以某种方式禁用它的突出显示?
【问题讨论】:
标签:
javascript
jquery
html
checkbox
【解决方案1】:
这违背了所有用户可访问性文档,所以我真的不建议这样做,但如果你真的想实现这一点,你可以通过在添加 onfocus="this.blur()" 时删除复选框的 focus 来使用 JavaScript:
<input type="checkbox" onfocus="this.blur()" tabindex="-1" />
我不建议这样做的原因是因为这意味着当使用键盘上的 tab 键时该元素不可访问。这就是为什么我还在上面示例中的复选框中添加了tabindex="-1",因为没有它,JavaScript 事件会将选项卡重置为 1,从而无法访问出现在您的复选框之后的所有交互元素。
【解决方案2】:
此代码在释放点击后没有焦点,但仍允许用户使用选项卡切换到复选框并正常使用键盘控件。可能是您将获得的最佳折衷方案。
document.getElementById('checkbox').addEventListener('mouseup', function() {
this.blur();
}, false);
<input type="checkbox" id="checkbox" />