检测元素未被选中

3

如何测试 HTML 元素是否被聚焦?我想在一个下拉选择列表没有被选中的时候执行一段代码。因此,如果你在文档中的任何其他位置点击而不是选择列表,JavaScript 将取消所有元素的选择。

这个语句没有起作用:

var items=document.getElementById("items");
items.focused==false;

我希望有人能够帮助我。


2
如何确定哪个HTML页面元素具有焦点 - p.s.w.g
1
您可以使用事件onblur,当某个元素失去焦点时会调用该事件。 - RononDex
检查该项是否为 === document.activeElement - crush
“下拉选择列表未选择”是什么意思?因为默认情况下,即使没有提供“selected”属性,选择列表中的第一个“option”也会被选中。所以请您详细说明一下。 - Rajesh Paul
1个回答

4

JavaScript的较新版本允许这样做:

if( items.matchesSelector(":focus"))

但是对于较旧的浏览器,您可以尝试以下方法:

if( document.querySelector("#items:focus"))

然而,在IE 7及更早版本中,这将无法正常工作。

如果您需要支持这些浏览器,那么我建议您的处理程序使用类似以下方式:

// some means of attaching a handler(evt) {
evt = evt || window.event;
var target = evt.srcElement || evt.target;
while(target) {
    if( target.id == "items") return true;
    target = target.parentNode;
}
// #items is not the target. Do something.

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