Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否在文档上禁用制表符,但启用输入制表符?_Javascript_Jquery - Fatal编程技术网

Javascript 是否在文档上禁用制表符,但启用输入制表符?

Javascript 是否在文档上禁用制表符,但启用输入制表符?,javascript,jquery,Javascript,Jquery,我已经在我的站点中添加了以下代码以防止选项卡,这适用于整个文档。问题是,这显然会禁用整个站点中的所有选项卡,我如何才能在其中添加规则以允许对输入进行选项卡化?我尝试添加。不是(“输入”),但这似乎不起作用 $(document).keydown(function(objEvent) { if (objEvent.keyCode == 9) { objEvent.preventDefault(); } }); 谢谢您可以检查docum

我已经在我的站点中添加了以下代码以防止选项卡,这适用于整个文档。问题是,这显然会禁用整个站点中的所有选项卡,我如何才能在其中添加规则以允许对输入进行选项卡化?我尝试添加。不是(“输入”),但这似乎不起作用

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

谢谢

您可以检查
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();
        }
});

keyup事件也会正确地发送一个目标

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

因此,检查目标是否为输入字段,然后忽略默认值


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

我觉得这不是个好主意。通过禁用选项卡,可以打破浏览器的默认行为。许多人使用标签浏览,因为他们可能习惯于使用键盘命令而不是鼠标。另外,盲人对屏幕阅读器的依赖程度也很高。嗨,约翰,我完全同意你的观点,但是对于这个特殊的网站,这是一个要求,但是我同意你的观点