禁用textarea中的快捷方式和输入

时间:2016-07-22 13:12:00

标签: javascript shortcut

我有这个允许我放置快捷方式的JavaScript,但我想在textarea中停用它们并输入

//press A for back to top
jQuery(document).keydown(function(e){
    var target = e.target || e.srcElement;
    if ( target.tagName !== "TEXTAREA" || target.tagName === "INPUT" ) {
            if(e.which == 84) {
                $("html, body").animate({ scrollTop: 0 }, 500);
                return false;
            }
    }
});

但是因为如果我插入( target.tagName !== "TEXTAREA" || target.tagName === "INPUT" )脚本不起作用?我该如何解决?

2 个答案:

答案 0 :(得分:1)

你的情况有错,正确的是:

if ( target.tagName != "TEXTAREA" && target.tagName != "INPUT" ) {...}

“A”的Unicode值也是65,84代表“T”。

答案 1 :(得分:0)

您可以将代码简化为

//press A for back to top
$(document).keydown(function(e){
console.log(e);
    if(e.which == 65 && e.target.tagName !== 'INPUT'&& e.target.tagName !== 'TEXTAREA') {
      $("html, body").stop().animate({ scrollTop: 0 }, 500);
      return false;
    }
});

顺便说一句,你在评论中写道"按A键到顶部"但是你的代码使用" t" charcode(84);正确的charcode是65。

Here a working jsfiddle