Пусть некропост, но всё же:
http://api.jquery.com/text/
"The .text() method cannot be used on form inputs or scripts. To set or get the text value of input or textarea elements, use the .val() method."
Выходит, что поведение text() для textarea непредсказуемо, что и показал Ваш скрипт. Вот так норм:
<textarea rows="5" cols="45"></textarea>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$('textarea').keypress(function(e) {
if (e.which == 13){
var text = $(this).val();
$(this).val(text + '\n+ ');
return false;
}
});
/*
//или так
$('textarea').keypress (function (event) {
if (event.which == 13){
this.value += '\n+ ';
return false;
}
})*/
</script>