禁用文档选项卡但启用输入标签?

时间:2011-11-03 15:30:10

标签: javascript jquery

我已将以下代码添加到我的网站以防止标签,这适用于整个文档。问题是,这显然禁用了整个站点的所有标签,如何添加规则以允许输入标签?我尝试添加.not('input'),但这似乎不起作用。

$(document).keydown(function(objEvent) {
        if (objEvent.keyCode == 9) {  
            objEvent.preventDefault(); 
        }
});

由于

2 个答案:

答案 0 :(得分:3)

您可以查看document.activeElement.tagName

的值

如果未选择任何内容,则document.activeElement将成为FireFox,Chrome中的body标记,以及IE 7/8/9中的html标记。

$(document).keydown(function(objEvent) {
        if (objEvent.keyCode == 9) {  
            if (document.activeElement.tagName != 'INPUT')
                objEvent.preventDefault();
        }
});

答案 1 :(得分:0)

正确的keyup事件也会发送目标。

objEvent.target应返回用户所在的当前目标。

因此,检查目标是否为输入字段,然后忽略preventDefault ...

编辑:不确定这是否可行。 “wsanville”方法看起来更合法。