如何防止 HTML 复选框在单击时获得焦点?

9

有人知道如何防止HTML复选框在被点击时获得焦点吗?我仍然希望它能改变状态,但不想获得焦点。


你的意思是关注于有边框的轮廓吗? - Chinmayee G
不,我不希望它从另一个字段中夺取焦点。 - David Tinker
2个回答

10
您可以通过在mousedown处理程序中使用preventDefault()来防止焦点:
$('input[type=checkbox]').mousedown(function (event) {
    // Toggle checkstate logic
    event.preventDefault(); // this would stop mousedown from continuing and would not focus
});

使用纯 JavaScript:

checkbox.onmousedown = function (event) {
    // Toggle checkstate logic
    event.preventDefault(); // this would stop mousedown from continuing and would not focus
}

1
很好。复选框仍然可以改变状态,这样很好。谢谢。 - David Tinker

1

给出这个CSS:

input {outline: 0;}

但请注意,当您使用Tab键移动控件时,将无法确定您当前所在的控件。

更新 #1

请使用以下JavaScript代码:

$('input[type=checkbox]').click(function () {
    this.blur();
});

那只是隐藏复选框获得焦点的事实。如果可能的话,我不希望复选框获得焦点。 - David Tinker
除了点击之外,还有其他方法可以聚焦于复选框。 - Starx
1
更新#1修复了问题。 - Maximilian Köhler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接