2012-04-21 178 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