我正在编写一个 JavaScript 应用程序。我用过类似的东西
document.keypress = function(e) {
switch(e.which){
case 97:
alert('foobar');
break;
.......
而且效果很好!现在,在 html 页面的某个地方我有一个文本区域,现在,每当我输入 a
(即 ASCII 97)时,它就会警报
(显然)。
问题是我该如何防止这种情况发生?我的按键事件适用于除文本区域和文本字段之外的所有内容?
最佳答案
您可以使用target
属性来标识触发事件的元素。
然后,使用 tagName
确定元素类型。
您可以使用其他属性(例如type
)来确定它是否是文本字段。
document.keypress = function(e) {
var target = e.target;
var elementType = target.tagName.toLowerCase();
if (elementType != "textarea" && !(elementType =="input" && target.type =="text")) {
switch(e.which){
case 97:
alert('foobar');
break;
.......
关于javascript - 如何停用文本区域的按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18182258/