如何禁用所有键盘按键?

8

我正在寻找一种禁用textarea中所有键盘按键的方法。我在网上找到了一些示例来禁用一些单个按键,但如何禁用整个键盘?


你如何禁用特定的选项? - Sergio Tulentsev
你想实现什么?一个文本区域,禁止任何东西被键入和粘贴吗?那就使用“disabled”属性...如果你只想防止键盘输入,请使用JavaScript捕获 keydown/keypress/keyup 事件,并阻止这些事件。 - Tobias Krogh
将其设置为“readonly”对您有用吗?这是一种替代“disable”的方法,它允许用户单击文本区域但不更改它。https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/textarea - Matt Urtnowski
4个回答

19
您可以使用disabled属性禁用文本区域。或者您可以使用readonly属性将其设置为只读。readonly类似于disabled,但它不会阻止用户在文本区域中单击或选择内容。
如果您确实需要使用JavaScript来完成此操作,可以使用类似以下代码(使用jQuery):
<textarea rows=3 cols=20></textarea>​

$("textarea").keydown(false);

你可以在这里尝试:http://jsfiddle.net/7n4G4/1/


5

如果您希望用户仍然可以在文本区域中单击和选择内容,则使用readonly属性。

<textarea name="text" readonly>

如果您想完全禁用它而不进行选择

<textarea name="text" disabled>

如果只想防止键盘输入

<textarea name="text" id="text-input">

使用jQuery非常简单

$("#text-input").on("keydown keypress keyup", false);

太好了!我正在尝试防止键盘在我想要显示日期选择器时出现。使用“readonly”就可以解决问题。 - B. Krafft

3
假设您在textare中具有textarea的引用,可能类似于以下内容:
textearea.onkeydown = textarea.onkeypress = function() { return false };

也许这有些过度,但是考虑使用 readonly 属性代替:

textarea.readOnly = true

在第一种情况下,您仍然可以使用鼠标复制/粘贴,而在第二种情况下,您只能复制(无论是使用键盘还是鼠标)。

0
 document.getElementById('ID OF TEXTAREA').onkeypress=function(){return false;}

不知道为什么你要这样做,如果可以就将其禁用

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接