当前位置: 首页 > 知识库问答 >
问题:

jQuery-在输入和文本区域禁用keydown

韩博简
2023-03-14

我使用箭头键(和A,W,D)在页面之间导航。

如何禁用文本区域和输入字段的按键功能?

   $(document).keydown(function(e) {
    switch(e.which) {
        case 65:
            leftArrowPressed();
            break;
        case 37:
            leftArrowPressed();
            break;
        case 68:
            rightArrowPressed();
            break;
        case 39:
            rightArrowPressed();
            break;
        case 72:
            homePressed();
            break;
        case 87:
            homePressed();
            break;
    }
});

共有3个答案

拓拔俊艾
2023-03-14

由于您使用的是jQuery:

$("input, textarea").on("keydown keyup",function(e){e.stopPropagation();});

...就是你所需要的一切

$("input, textarea").on("keydown keyup",function(e){e.stopPropagation();});
$(document).keydown(function(e){console.log("key pressed: "+e.which);});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" value="Test input" />&nbsp;<textarea style="height:18px;">Test textarea</textarea>&nbsp;<div style="display:inline; border: 1px solid black;">Test div</div>
<div>1. Just click somewhere in the results area and start typing. Watch the console.<br />2. Then click inside the input/textarea and do the same. Nothing will happen.</div>
向修谨
2023-03-14
$(document).keydown(function (e) {
            var element = e.target.nodeName.toLowerCase();
            if ((element != 'input' && element != 'textarea') || $(e.target).attr("readonly") || (e.target.getAttribute("type") ==="checkbox")) {
                if (e.keyCode === 8) {
                    return false;
                }
            }

});

东方修谨
2023-03-14

你可以使用这个(需要IE浏览器9):

function leftArrowPressed() { console.log('left pressed'); }
function rightArrowPressed() { console.log('right pressed'); }
function homePressed() { console.log('home pressed'); }

$(document).keydown(function(e) {
    var el = document.activeElement;
    try {
        if (el && el.selectionStart !== undefined || el.isContentEditable) {
            console.log('skip');
            return; // active element has caret, do not proceed
        }
    } catch (ex) {}
    var f = {
        65: leftArrowPressed,
        37: leftArrowPressed,
        68: rightArrowPressed,
        39: rightArrowPressed,
        72: homePressed,
        87: homePressed
    };
    if (f[e.which]) f[e.which]();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input value="test">
<input type="checkbox">
<textarea>test
</textarea>
<div contenteditable>test</div>
 类似资料:
  • 我使用JQuery移动开发一个Web-App。在计算机文本区工作良好。当我在IOS设备上测试时,我得到了弹出式键盘,但我不能键入任何东西。 HTML 信息: JQuery-1.9.1。min.js 任何帮助都将不胜感激

  • 问题内容: $input.disabled = true; 要么 哪种标准方法?相反,如何启用禁用的输入? 问题答案: jQuery 1.6以上 要更改属性,您应该使用函数。 jQuery 1.5及以下 该函数不存在,但具有相似的功能: 设置禁用的属性。 要再次启用,正确的方法是使用 在任何版本的jQuery中 您始终可以依赖实际的DOM对象,并且如果只处理一个元素,它可能比其他两个选项要快一些:

  • 主要内容:创建文本域,TextField文本,示例-1,实例-2,实例-3用于单行文本输入。请看下面的示例 - 和字段扩展了类,它是JavaFX中所有文本控件的超类。 上面的代码生成以下结果。 创建文本域 我们可以使用类的构造函数来创建文本字段。 只是一个带有光标的文本输入框,通常我们需要一个控件来告诉文本字段的目的。以下代码创建一个控件来标记对应的文本字段是用于名称输入。然后它创建一个对象。之后,它使用HBox布局和。 使用预定义文本创建文本字段。 TextField

  • 问题内容: 我想在输入文本字段的同时更新我的​​文本区域,但是在输入时我延迟了1次击键,即当我按下一个键时,会显示上一个键。这是我的代码段 问题答案: 我不建议使用 只需在您的via中添加一个: 里面每个方法(,和)只需要一个电话设置你的文字通过: 这是我做的一个例子:

  • 我有一个带有一些TextArea元素的GUI来显示信息。由于GUI将对keyevents做出反应,我在场景元素中添加了一个EventHandler。因为我不想为每个文本区域添加一个EventHandler,所以我禁用了它们以防止它们聚焦,因为这样场景的EventHandler就不再工作了。现在我有一个问题:文本显示为灰色,不再是黑色,尽管我在css文件中更改了它。你知道为什么文本不是黑色的吗?我该

  • 本文向大家介绍怎样在文本框中禁用中文输入法?相关面试题,主要包含被问及怎样在文本框中禁用中文输入法?时的应答技巧和注意事项,需要的朋友参考一下 用文本框的 css 属性 松开键时检查文本框的的值,只保留 Unicode 编码在 0 ~ 255 的字符 把所有双字节字符替换为空 把中文字符替换为空 https://www.cnblogs.com/longhao510/p/5476926.html