javascript - 如何停用文本区域的按键事件

标签 javascript html

我正在编写一个 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/

相关文章:

Outlook 的 HTML 模板无法正常工作

javascript - 如何将 C# 变量传递给 JavaScript 函数

JavaScript 子数组

javascript - 获取具有相同类别的特定图像

javascript - 将数组作为参数粘贴到函数 Javascript 时保持数组不变的方法

javascript - 使用 Html.BeginCollectionItem 帮助程序传递集合的分部 View

css - 是什么导致间距?

javascript - 类型 'authorization' 上不存在属性 'Request'

jquery - floatThead 影响标题的高度

html - 为什么文本在带有 float : left; not wrapping? 的图像内部流动