2012-04-21 110 views
3

我正在寻找一种可能性来禁用textarea中的所有键盘按键。我在网上找到一些例子禁用一些单一的,但我怎么能禁用整个键盘?如何禁用所有键盘按键?

+0

你如何禁用某些? – 2012-04-21 17:28:19

+0

你想实现什么?一个textearea里面什么都不能写和粘贴?然后使用“禁用”属性...如果你只想防止键盘输入捕获keydown/keypress/keyup,并通过javascript阻止这些事件 – 2012-04-21 17:28:57

+0

将它设置为'readonly'吗?它是'disable'的替代方案,它可以让用户点击textarea,但不会改变它https://developer.mozilla.org/zh/HTML/Element/textarea – Murtnowski 2012-04-21 17:29:59

回答

14

您可以使用the disabled attribute禁用textarea。或者,您可以使用readonly属性使其只读。 readonly就像禁用,除非它不阻止用户在textarea中单击或选择。

如果你真的需要用JavaScript东西像这样做会(使用jQuery)做到这一点:

<textarea rows=3 cols=20></textarea>​ 

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

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

2

假设你有textare参考您textarea,也许是这样的:

textearea.onkeydown = textarea.onkeypress = function() { return false }; 

那它可能是矫枉过正,但... Consi dering使用,而不是只读属性:

textarea.readOnly = true 

在第一种情况下,您仍然可以使用鼠标,复制/粘贴在你只能复制第二种情况(使用键或鼠标无所谓) 。

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

不知道为什么你想这样做,如果你只能disabled它。

2

使用只读属性,如果你想确保你的用户仍然可以通过点击,如果你想保持它完全禁用而没有选择

<textarea name="text" disabled> 

选择textarea的

<textarea name="text" readonly> 

内如果只想防止键盘输入

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

用jQuery很简单

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

非常好!我试图防止键盘显示时,我想我的日期选择器显示。使用'只读'就可以做到这一点。 – 2017-01-31 21:50:45