Примерно так:
<textarea onkeydown="javascript:return false;"></textarea>
сделает трюк. ( jsfiddle )
Вы также можете сделать это во время выполнения, если хотите:
<textarea class="readonly"></textarea>
с
$(".readonly").keydown(function() false);
Обратный вызов onkeydown
фиксирует события нажатия клавиш и отменяет их, используя return false;
.
В зависимости от того, что вы пытаетесь сделать, вы можете захотеть предотвратить другие виды событий, поскольку, например, все еще можно изменить содержимое с помощью мыши.
Ваша функция обратного вызова может принимать или отменять события в зависимости от типа нажатия клавиши. Например, чтобы включить только ctrl-a и ctrl-c (с jQuery):
function keydown(e) {
if(!e.ctrlKey) return false; // Cancel non ctrl-modified keystrokes
if(e.keyCode == 65) return true;// 65 = 'a'
if(e.keyCode == 67) return true;// 67 = 'c'
return false;
}