Hola
Prueba con esto
Código javascript
:
Ver original<html>
<head>
<script type="text/javascript">
var nuevaFila = {
Evento: function (elemento,nomevento,funcion) {
if (elemento.attachEvent)
{
var f=function(){
funcion.call(elemento,window.event);
}
elemento.attachEvent('on'+nomevento,f);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,false);
return true;
}
else
return false;
},
init: function(){
var elem = document.getElementById("txt");
nuevaFila.Evento(elem, 'keyup', nuevaFila.CreaFila);
},
CreaFila: function (ev) {
var keyCode = document.layers ? ev.which : document.all ? event.keyCode : document.getElementById ? ev.keyCode : 0;
var elem = document.getElementById("txt");
var caracteres = elem.rows * 10;
if (keyCode == 8) {
if (elem.value.length < (caracteres-10)) {
elem.rows-= 1
}
}
else if (elem.value.length < 9) {
elem.rows = 1
} else if (elem.value.length == caracteres) {
elem.rows+= 1
}
}
}
nuevaFila.Evento(window, 'load', nuevaFila.init);
</script>
</head>
<body>
<textarea name="txt" id="txt" cols="10" rows="1"></textarea>
</body>
<html>
En cuanto al salto de linea no se me ocurre nada, de hecho no se si se puede hacer lo que pretendes
Suerte